2017-06-19 19 views
0

私はちょうどtensorflowを学び始め、そしてJupyter-Notebookに次のコードを書いている:次のようにtensorboard初めて実行イベントファイルを削除した後も古いノードが表示される理由[Tensorflow]?

a = tf.placeholder(tf.float32,shape=[3,3],name='X') 
b = tf.constant([[5,5,5],[2,3,4],[4,5,6]],tf.float32,name='Y') 
c = tf.matmul(a,b) 

with tf.Session() as sess: 
    writer = tf.summary.FileWriter('./graphs',sess.graph) 
    print (sess.run(c,feed_dict={a:[[2,3,4],[4,5,6],[6,7,8]]})) 

writer.close() 

、単一X、YおよびMULTノードを与える:

Tensorboard_before

しかし、コード(ctrl+enter)を再度コンパイルすると、テンソルボードは元のグラフの複製を作成します。

私はこれを解決しようとしました(古い古いノードを削除します)。
1.イベントファイルを削除しています。
2.同じコードの複数のイベントファイルを含むディレクトリ全体を削除します。
3. tensorboardコマンドラインコールの前にfuser 6006/tcp -kを実行してください。

それでもテンソルボードを実行すると、重複コピーが表示されます。

Tensorboard_after

働いた唯一の解決策は、コードの開始時又はshut the notebook down and restart ittf.reset_default_graph()を使用してグラフをリセットすることでした。

私の質問は次のとおりです。
1.なぜそれがeven after deleting the event files, the older dead nodes keep showing up on the tensorboard?ですか?そして、はい、私はTensorboardを再試行した後も再試行しましたが、重複はまだありました。
2.上記の2つに加えて、死んだノードを取り除く方法は何ですか?

答えて

1

あなたが記述したノードは死んでいません。それらはまだ存在し、使用することができます。

初めてコードを実行すると、ノードが作成され、グラフに追加されます。 2回目に同じセルを実行すると、別の名前でもう一度追加されます。

.pyファイルにコードを2回コピーするだけで同じことができます。

あなたの解決策はtf.reset_default_graph()です。メモリからのすべての情報が削除されたため、ノートブックを再起動することができます。 .pyファイルを再実行するのと同じです。

ファイルが削除されても、メモリ内のグラフに追加されたノードはまだそこに残っているため、偶数ファイルを削除しても機能しません。

+0

ありがとう、それは私に多くの新しいことを学ぶことでした。しかし、私はあなたの答えの最後の部分を理解できませんでした。 "でも、ファイルは削除されました" – arjunkhera

+0

@ e4envy TFで書かれたファイルを削除しましたが、あなたのメモリにノードが既に追加されているので、次回にファイルが生成されても、同じイベントファイルが得られます –

+0

@Salvador Daliを入手しました。このシナリオでの作業方法を完全に理解しています。すべての疑問に答えてくれてありがとう、pointwise :) – arjunkhera

関連する問題