2015-12-23 18 views
8

私は、最適化のために視覚化したいと思っているかなり複雑なTensorflowグラフを持っています。変数に注釈を付ける必要なしにグラフを保存してTensorboardに表示する機能はありますか?Tensorflowグラフをサマリー操作なしでTensorboardで表示するために保存する

私はこの試みた:

merged = tf.merge_all_summaries() 
writer = tf.train.SummaryWriter("/Users/Name/Desktop/tf_logs", session.graph_def) 

をしかし、何も出力を生成しませんでした。これは0.6ホイールを使用しています。

これが関連しているように表示されます。効率のため Graph visualisaton is not showing in tensorboard for seq2seq model

答えて

12

tf.train.SummaryWriterログを非同期でディスクに。ログにグラフが表示されるようにするには、プログラムが終了する前にライターでclose()またはflush()と呼ぶ必要があります。

+0

TFの最近のバージョンのための 'tf.summary.FileWriter' – Conchylicultor

14

GraphDefのプロトタイプとしてグラフをダンプして、TensorBoardに直接ロードすることもできます。セッションを開始したりモデルを実行したりせずにこれを行うことができます。

## ... create graph ... 
>>> graph_def = tf.get_default_graph().as_graph_def() 
>>> graphpb_txt = str(a.graph.as_graph_def()) 
>>> with open('graphpb.txt', 'w') as f: f.write(graphpb_txt) 

これは、モデルの仕様に応じて、このようなファイルを出力します。

node { 
    name: "W" 
    op: "Const" 
    attr { 
    key: "dtype" 
    value { 
     type: DT_FLOAT 
    } 
    } 
... 
version 1 

TensorBoardでは、「アップロード」ボタンを使用してディスクから読み込むことができます。すべて明確にするために

+0

恐ろしい!ありがとう。 – dmansfield

+1

この「アップロード」ボタンはどこですか?私には何も見えませんでした – avocado

+0

「アップロード」ボタンがありません –

3

が、これは私が.flush()メソッドを使用して、問題を解決する方法である:

はとライターを初期化します。

writer = tf.train.SummaryWriter("/home/rob/Dropbox/ConvNets/tf/log_tb", sess.graph_def) 

とでライターを使用します。

writer.add_summary(summary_str, i) 
    writer.flush() 
5

これは私のために働いた:

graph = tf.Graph() 
with graph.as_default(): 
    ... build graph (without annotations) ... 
writer = tf.summary.FileWriter(logdir='logdir', graph=graph) 
writer.flush() 

"--logdir = logdir /"を使用してテンソルボードを起動すると、グラフが自動的に読み込まれます。 「アップロード」ボタンは必要ありません。

+0

"FileWriter"の代わりにTypo "FileWrite"を修正したy g(user 5656195)に感謝します。 3人の読者が「この方はauthor to address」と言ってこの編集を拒否しました(おそらく、編集説明の最後に疑問符をつけているためです)。クレイジー。 –