2016-04-11 22 views
4

テンソルフローモデルを作成しました。 しかし、何らかの理由で常にNANの損失が発生します。 各テンソルの各値をデバッグして表示する方法を知りたいと思います。例えばのために入力サンプルあたりのTensorflowネットワーク重み/出力/コストをデバッグする方法はありますか?

: -

out = tf.add(tf.matmul(outputs[-1], _weights['out']), _biases['out']) 

実行時に、私はこのテンソルの値を表示し、物事がうまくいかないところ見てみたいと思います。 私は彼らがこの

out = tf.add(tf.matmul(outputs[-1], _weights['out']), _biases['out']) 
out = tf.Print(out, [out], message="This is softmax Output: ") 

ような何かをしかし、これが与えると出て、私はカントのように本当に便利ではありません。この

I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [2.148583e-08 5.9002307e-08 -9.90654e-08...] 
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...] 
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...] 
Iter 64, Minibatch Loss= nan, Training Accuracy= 0.01562 
Testing Accuracy: 0.0 
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...] 
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...] 
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...] 
I tensorflow/core/kernels/logging_ops.cc:79] This is softmax Output: [nan nan nan...] 

のように入れ、このpost

に似た何かを発見しましたすべての値を表示します。 ステップバイステップのデバッグオプションがあるかどうか知りたいですか?

+0

あなたにも –

+0

真の中間テンソルを印刷するために同様のレシピを使用することができますが、問題は、これは、それが印刷して全体を出力しないことですテンソルの最初の数値。クリッピングを適用するような数学的なテストをして、それを次のテンソルに渡したい場合、私はそれをすることができませんでした。しかし、ええ、最後の手段としてそれを使用します。 –

+0

私たちが取り組んでいるのですが、このような段階的な計算は簡単に行えません。 1つの回避策は、すべてを変数として再定義し、 "tf.assign"を使用して値を設定することです。このようにして、セッションの実行間で状態を調べることができます –

答えて

0

tf.Print()は、summarizeオプションパラメータを渡すと、さらに多くの結果を表示します。たとえば、summarize=100は、テンソルの最初の100要素を表示します。

API Reference

(質問が尋ねられたとき、機能があったかどうかわからない)

0

TensorFlowは今tfdbgと呼ばれる組み込みのデバッガを持っています。これは、グラフの構造と一緒に、グラフの中間のテンソルを公開するので、このタイプの問題を簡単にデバッグすることができます。印刷操作と比較すると、コード変更が少なくて済み、グラフのカバレッジが向上します。

、マスターHEADでそのドキュメント/チュートリアルをご覧ください: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/how_tos/debugger/index.md

関連する問題