2017-01-07 7 views
1

私はRPi3でインライン化を再試行しようとしています。このヒストグラムのエラーメッセージが表示されます。Inception retraining issue「ヒストグラムサマリーのヒストグラム」

python /home/pi/Tensorflow/tensorflow/tensorflow/examples/image_retraining/retrain.py --bottleneck_dir=/home/pi/Documents/Machine\ Learning/Inception/tf_files/bottlenecks --how_many_training_steps 500 --model_dir=/home/pi/Documents/Machine\ Learning/Inception/tf_files/inception --output_graph=/home/pi/Documents/Machine\ Learning/Inception/tf_files/retrained_graph.pb --output_labels=/home/pi/Documents/Machine\ Learning/Inception/tf_files/retrained_labels.txt --image_dir /home/pi/Documents/Machine\ Learning/Inception/Retraining_Images 
Looking for images in 'Granny Smith Apple' 
Looking for images in 'Red Delicious' 
100 bottleneck files created. 
200 bottleneck files created. 
2017-01-07 11:30:22.180768: Step 0: Train accuracy = 56.0% 
2017-01-07 11:30:22.242166: Step 0: Cross entropy = nan 
2017-01-07 11:30:22.850969: Step 0: Validation accuracy = 50.0% 
Traceback (most recent call last): 
    File "/home/pi/Tensorflow/tensorflow/tensorflow/examples/image_retraining/retrain.py", line 938, in <module> 
    tf.app.run() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 30, in run 
    sys.exit(main(sys.argv[:1] + flags_passthrough)) 
    File "/home/pi/Tensorflow/tensorflow/tensorflow/examples/image_retraining/retrain.py", line 887, in main 
    ground_truth_input: train_ground_truth}) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 717, in run 
    run_metadata_ptr) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 915, in _run 
    feed_dict_string, options, run_metadata) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 965, in _do_run 
    target_list, options, run_metadata) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 985, in _do_call 
    raise type(e)(node_def, op, message) 
tensorflow.python.framework.errors.InvalidArgumentError: Nan in summary histogram for: HistogramSummary 
    [[Node: HistogramSummary = HistogramSummary[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](HistogramSummary/tag, final_result)]] 

Caused by op u'HistogramSummary', defined at: 
    File "/home/pi/Tensorflow/tensorflow/tensorflow/examples/image_retraining/retrain.py", line 938, in <module> 
    tf.app.run() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 30, in run 
    sys.exit(main(sys.argv[:1] + flags_passthrough)) 
    File "/home/pi/Tensorflow/tensorflow/tensorflow/examples/image_retraining/retrain.py", line 846, in main 
    bottleneck_tensor) 
    File "/home/pi/Tensorflow/tensorflow/tensorflow/examples/image_retraining/retrain.py", line 764, in add_final_training_ops 
    tf.histogram_summary(final_tensor_name + '/activations', final_tensor) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/logging_ops.py", line 100, in histogram_summary 
    tag=tag, values=values, name=scope) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_logging_ops.py", line 100, in _histogram_summary 
    name=name) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 749, in apply_op 
    op_def=op_def) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2380, in create_op 
    original_op=self._default_original_op, op_def=op_def) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1298, in __init__ 
    self._traceback = _extract_stack() 

InvalidArgumentError (see above for traceback): Nan in summary histogram for: HistogramSummary 
    [[Node: HistogramSummary = HistogramSummary[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](HistogramSummary/tag, final_result)]] 

私はthis を読んだ後retrain.pymerged = tf.merge_all_summaries()を変更しようとしたが、それは仕事をdidntの。

また、私は再教育しようとした最初の時間は、私はエラーを打つ前に、ステップ0のために異なる結果を得た:

2017-01-07 11:13:36.548913: Step 0: Train accuracy = 89.0% 
2017-01-07 11:13:36.555770: Step 0: Cross entropy = 0.590778 
2017-01-07 11:13:37.052190: Step 0: Validation accuracy = 76.0% 
+0

問題を解決できますか?私は同じ問題を抱えており、解決策を見つけることができません。 – Gegenwind

答えて

3

が、それはNaN値がどこから来ている知って役立つかもしれないということのようですね。そのため、tensorflowデバッガ(tfdbg)を見てみましょう:sess.run()は訓練と評価のために発生したときに、あなたのretrain.pyで https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/how_tos/debugger/index.md

を、あなたは次に

from tensorflow.python import debug as tf_debug 

# ... 
# In def main(_) 
if debug: 
    sess = tf_debug.LocalCLIDebugWrapperSession(sess) 
    sess.add_tensor_filter("has_inf_or_nan", tf_debug.has_inf_or_nan) 

# ... 

のような変更を行うことができ、あなたデバッガのコマンドラインインターフェイスにドロップされます。

tfdbg> run -f has_inf_or_nan 

テンソルフィルタhas_inf_or_nanがヒットした場合、インターフェイスはあなたに含むテンソルのリストが表示されます:プロンプトtfdbg>で、あなたはどのNaNをまたは無限大がTensorFlowグラフに表示されるまで、コードの実行を許可するコマンドを入力することができますInfsまたはNans、時間順にソートされます。一番上のものは、「犯人」、すなわち最初に不良数値を生成したものでなければならない。あなたは以下のtfdbgは、その入力を見てコマンドおよびノー​​ド属性を使用することができ、その名前はnode_1であると言う:

tfdbg> li -r node_1 
tfdbg> ni -a node_1 
+0

注:tfdbgデバッガは、最近追加された機能(2016年12月頃)であるため、この機能にアクセスするには、TensorFlowフォークを同期させ、最新のバイナリをダウンロードする必要があります。 – scai

+0

Pythonコードに追加する必要があるフラグはありますか?デバッグ: '' NameError:グローバル名 'デバッグ'が定義されていない場合のエラーは、 '--debug'を追加してもスローされます。私はTF.11を使用しています。 – user7388993

+0

@ user7388993 "debug"フラグは単なる例です。 Pythonコードで定数として定義することができます。そのスイッチが欲しくない場合は、 "if debug"行なしで行えます。 – scai

1

あなたがtf.contrib.learnを使用している場合は、以下を使用したいと思う:

debug_hook = tf_debug.LocalCLIDebugHook() 
debug_hook.add_tensor_filter("has_inf_or_nan", tf_debug.has_inf_or_nan) 
hooks = [debug_hook] 
... 
classifier.fit(..., monitors=hooks) 
関連する問題