我正在玩TensorBoard并且不能做一个简单的例子。计算只是添加两个常量。
import tensorflow as tf
sess = tf.Session()
a = tf.constant(1, name = "const1")
b = tf.constant(10, name = "const2")
c = a + b
asum = tf.summary.scalar("g1" , a)
bsum = tf.summary.scalar("g2", b)
csum = tf.summary.scalar("gsum", c)
merged = tf.summary.merge_all()
train_writer = tf.summary.FileWriter('.\logs',sess.graph)
summary, _ = sess.run([merged, c])
train_writer.add_summary(summary, 0)
然后我先编译它:
>python filename.py
一切看起来都不错。
然后:
>tensorboard --logdir=".\logs" --inspect
发生了奇怪的事情:没有标量!
Found event files in:
.\logs
These tags are in .\logs:
audio -
histograms -
images -
scalars -
tensor -
======================================================================
Event statistics for .\logs:
audio -
graph
first_step 0
last_step 0
max_step 0
min_step 0
num_steps 1
outoforder_steps []
histograms -
images -
scalars -
sessionlog:checkpoint -
sessionlog:start -
sessionlog:stop -
tensor -
======================================================================
TensorFlow的版本是:1.2.1
Python版本:3.5.2
答案 0 :(得分:0)
FileWriter
对象缓冲它收集的事件,然后,一旦缓冲区已满,就将它们写在磁盘上。
单个调用FileWriter
对象不足以填充缓冲区,因此您强制FileWriter
刷新缓冲区并将内容写入磁盘。为此,请在.close()
操作后调用add_summary
。
train_writer.add_summary(summary, 0)
train_writer.close()
这将关闭train_writer
对象,您将无法再使用它。
如果您只想在不关闭文件的情况下刷新缓冲区,则可以使用.flush()
方法。
答案 1 :(得分:0)
当我遇到完全相同的问题时,更改sess.run的顺序对我来说很有效。
_, summary = sess.run([c, merged])