天天看點

學習筆記TF063:TensorFlow Debugger

常見錯誤類型,非數字(nan)、無限值(inf)。tfdbg指令行界面(command line interface,CLI)。

先直接執行。

準确率第一次訓練上千,後面保持較低水準。

TensorFlow Debugger,在每次調用run()前後基于終端使用者界面(UI),控制執行、檢查圖内部狀态。

張量值注冊過濾器has_inf_on_nan,判斷圖中間張量是否有nan、inf值。

開啟調試模式(debug)。

運作開始UI(run-start UI),在tfdbg>後輸入互動式指令,run()進入運作結束後UI(run-end UI)。連續運作10次

找出圖形第一個nan或inf值

第一行灰底字表示tfdbg在調用run()後立即停止,生成指定過濾器has_inf_or_nan中間張量。第4次調用run(),36個中間張量包含inf或nan值。首次出現在cross_entropy/Log:0。單擊圖中cross_entropy/Log:0,單擊下劃線node_info菜單項,看節點輸入張量,是否有0值。

用ni指令-t标志追溯

問題代碼

修改,對tf.log輸入值裁剪

遠端調試。tfdbg offline_analyzer。設定本地、遠端機器能通路共享目錄。debug_utils.watch_graph函數設定運作時參數選項。運作session.run(),中間張量、運作時圖像轉儲到共享目錄。本地終端用tfdbg offline_analyzer加載、檢查共享目錄資料。

源碼

或用會話包裝器函數DumpingDebugWrapperSession在共享目錄産生訓練累積檔案。

參考資料:

《TensorFlow技術解析與實戰》

歡迎推薦上海機器學習工作機會,我的微信:qingxingfengzi

上一篇: 學習随想
下一篇: mysql鎖