1. 程式人生 > >tensorflow學習筆記(四十三):使用 tfdbg 來 debug

tensorflow學習筆記(四十三):使用 tfdbg 來 debug

由於 tensorflow 在訓練的時候是在後臺執行的,所以使用 python 的 debug 工具來 debug tensorflow 的執行過程是不可行的,為此,官方提供了一款debug 工具,名為 tfdbg

有很多人覺得,為了 debug tensorflow 的計算過程又要學習一個新的工具,很煩。

但其實不然,tfdbg 用起來是十分簡單的。以至於簡單到我們只需要增加兩行程式碼,就可以將之前的模型改成可 debug 的。

debug 介面,也只需熟悉幾個常用的命令就可以了。

# 第一行: 引包
from tensorflow.python import debug as tf_debug

sess = tf.Session()
# 初始化的 sess 沒必要加上 debug wrapper
sess.run(tf.global_variables_initializer()) # 第二行,給 session 加個 wrapper debug_sess = tf_debug.LocalCLIDebugWrapperSession(sess=sess) debug_sess.run(train_op) # 用 加了 wrapper 的 session,來代替之前的 session 做訓練操作

好了,這樣就可以了,然後命令列執行:

python demo_debug.py
# 或者
python -m demo_debug

不一會,下面介面就會出現,就可以開心的 debug

這裡寫圖片描述

Tips : debug 介面中 帶 下劃線的 東西 都是可以用滑鼠點一下,就會觸發相應操作的

核心的幾個命令是:

  • run :執行一次 debug_session.run() , 這次執行產生中間 tensor 的值都可以通過 debug 介面檢視
  • exit : 退出 debug

注意事項

  • debug 的 wrapper 要加在 執行 train_op 的 session 上,因為要 debug 的是 train 過程。但是如果是想 debug input-pipeline 的話,感覺是可以將 wrapper 加在 執行 input-pipeline 的 session 上的(沒有測試過)。
  • 如果程式碼中使用了 input-pipeline 的話, debug 非常慢(不知道原因是啥)

參考資料