覚え書きブログ

Tensorflowのデバッガー

Pythonのデバッガーpdbでは、Tensorflowのsessionの中身をみることができない。。。
Tensorflowのデバッグは、Tensorflow独自のデバッガーを使う必要がある。
https://www.tensorflow.org/programmers_guide/debugger

以下のように、「from tensorflow.python import debug as tf_debug」で、debugモジュールをインポートし、
「sess = tf_debug.LocalCLIDebugWrapperSession(sess)」で、セッションに組み込む。

import tensorflow as tf
import numpy as np
from tensorflow.python import debug as tf_debug

x = tf.placeholder(tf.float32, shape=[10, 10])
y = tf.matmul(x, x)

sess = tf.Session()
sess = tf_debug.LocalCLIDebugWrapperSession(sess)

rand_array = np.random.rand(10, 10)
y = sess.run(y, feed_dict={x: rand_array})

そして、以下のように「--debug」オプションをつけて、pythonスクリプトを実行する。

python placeholder.py --debug
||<<

以下のように、デバッガーが起動する。
[f:id:hirotaka_hachiya:20170824122644p:plain]

画面の上にある「invoke stepper」をクリックすると、各ステップごとの処理を確認することができる。
[f:id:hirotaka_hachiya:20170824122911p:plain]