tensorflow學習筆記(四十三):使用 tfdbg 來 debug
阿新 • • 發佈:2019-01-31
由於 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 非常慢(不知道原因是啥)