iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 15
0

編寫一些代碼來計算三角形的面積,不只是運行單元,試圖從頭開始編寫一些TensorFlow代碼。
和大多數人一樣,你很快就會遇到編譯器和運行時錯誤,你開始懷疑,我將如何調試TensorFlow程序?

由於惰性評估範例,調試TensorFlow程序可能很棘手。如果圖表中有錯誤,那麼在圖形的這一部分執行之前,您將無法了解它。這就是為什麼我們說TF eager在開發TensorFlow程序時會有所幫助的原因之一。
它不是靈丹妙藥,你仍然需要知道如何調試TensorFlow程序,即使你已經用TF eager交互式地開發了這個程序。
那麼讓我們來看看如何調試惰性評估TensorFlow程序。調試TensorFlow程序類似於調試任何程序。
學習如何讀取錯誤消息並使用這些錯誤消息和堆棧跟踪來隔離方法。
出於隔離方法的目的,有問題的方法是,可以單獨調用該方法。不希望在數據集上運行整個TensorFlow程序並嘗試調試整體事物。
相反,需要將合成數據發送到方法中,然後有可重複的錯誤,可以嘗試修復。
怎麼解決這個錯誤呢?雖然無法展示可能遇到的所有可能的錯誤,但是將會介紹一些更常見的錯誤消息類型以及解決它們的方法。
第一步是當你看到一堆錯誤消息時不要讓你的眼睛茫然。仔細查看錯誤消息。特別是,您正在尋找兩條信息。
一,堆棧跟踪。這是拋出錯誤時的方法調用堆棧。
例如,在這種情況下,您將看到方法中的線s等於加號b,某些數據方法是個問題。顯然,調用堆棧也包含一堆TensorFlow庫方法。你
的程序正在調用這些方法,訣竅是磨練你的程式。
完成後,查找第二條信息,查看實際的錯誤消息。在這種情況下,錯誤消息是遇到值錯誤。 TensorFlow期望維度必須相等,但事實證明它們不是。
找到調用堆棧並閱讀錯誤消息可以幫助理解問題。通過查看調用堆棧,已找到代碼行和方法的名稱。
所以現在找到方法並查看它。這裡,該方法稱為sum_method,它接收稱為數據的張量。
忽略數據實際讀入當前程序的方式,將使用厚數據調用方法。

要使用偽數據調用方法,請創建會話,創建硬編碼張量數組。
在這種情況下,創建了一個名為fake_data的四乘三張量。
使用fake_data,並將其傳遞給一些下劃線方法。
請注意,這裡還使用print語句對一些數據的代碼進行了大量檢測。
使用print語句調試有點過時了,但這是診斷形狀錯誤的最簡單方法。


上一篇
[Day 14] 資料視覺化
下一篇
[Day 16] 使用TensorBoard來進行監控
系列文
Machine Learning Study 30天學習筆記19

尚未有邦友留言

立即登入留言