2017-03-23 19 views
1

私のネットワークでフォワードパスを使って、特定のtf.variableが取る値を記録したかったのです。これを行う簡単な方法はありますか?Tensorflow:テンソルがとる値をトラッキングする

+0

[TensorBoard](https://www.tensorflow.org/get_started/summaries_and_tensorboard)をご覧ください。主に変数を使って何をやっているかによって異なります。それが単なるスカラー変数なら、それをプロットすることができます。正確な値を取得するには、 'session.run()'にテンソル参照を渡し、完全な出力を取得します。 – golmschenk

答えて

0

テンソルフロー変数が取る各ステップで値をデバッグできます。

+0

私はこれをどうやってやるのか詳しく説明できますか? – fragman

1

TensorFlowでデータを記録またはデバッグするには、いくつかの方法があります。

最も簡単なのは、セッションまたはevalで実行することです。例えば

import tensorflow as tf 
sess = tf.InteractiveSession() 

v = tf.Variable([0.0]) 
# you can do other graph things here. 

print sess.run(v) 
# alternatively 
print v.eval() 

これはしばしば不可能なので、もう一つのアプローチはグラフにtf.Print操作を入れることです。変数を使用するたびにその変数を表示する方法は次のとおりです。

import tensorflow as tf 

v = tf.Variable([0.0], name="the_var") 
v = tf.Print(v, [v], "the_var = ") 

# ... do things with 'v' as if it was the variable op 

tf.Print opが唯一あなたが大規模なテンソルを持っている場合、最初のいくつかのエントリを印刷するので、ログインしているどのくらい制御するsummarizefirst_nのパラメータのドキュメントをチェックします。

グラフ実行中にTensorBoardを使用して変数の要約を記録することもできます。まだ使用していない場合はcheck it outです.TensorFlow内の上位レベルのAPIの多くは、実行中にTensorBoardにモデル変数に関する多くの情報を既に記録しています。 TensorBoardで独自のログを実行するには、tf.summary.scalarまたはtf.summary.histogramのようなものを使用します。

v = tf.Variable([0.0]) 
# this will log to the 'distributions' tab in tensorboard too 
tf.summary.scalar(v) 
tf.summary.histogram(v) 

実行中にディスクにこれらの要約を保存する方法の詳細については、ドキュメントチェックアウト:https://www.tensorflow.org/get_started/summaries_and_tensorboardを。

最後に、TensorFlow用のデバッガtfdbgがあります。グラフ実行をステップ実行してテンソルの内容をダンプすることができます。

関連する問題