我有一个相当复杂的Tensorflow图,我想为优化目的进行可视化.是否有一个我可以调用的函数,只需保存图形以便在Tensorboard中查看而无需注释变量?
我试过这个:
merged = tf.merge_all_summaries() writer = tf.train.SummaryWriter("/Users/Name/Desktop/tf_logs", session.graph_def)
但没有产生任何产出.这是使用0.6轮.
这似乎是相关的: 在seq2seq模型的张量板中没有显示图形可视化
为了提高效率,tf.train.SummaryWriter
日志与磁盘异步.要确保图形显示在日志中,必须在程序退出之前调用close()
或flush()
写入编写器.
您也可以将图形转储为GraphDef protobuf并直接在TensorBoard中加载.您可以在不启动会话或运行模型的情况下执行此操作.
## ... create graph ... >>> graph_def = tf.get_default_graph().as_graph_def() >>> graphpb_txt = str(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中,您可以使用"上传"按钮从磁盘加载它.
这对我有用:
graph = tf.Graph() with graph.as_default(): ... build graph (without annotations) ... writer = tf.summary.FileWriter(logdir='logdir', graph=graph) writer.flush()
使用"--logdir = logdir /"启动tensorboard时会自动加载图形.无需"上传"按钮.