张量板不显示标量



我正在玩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

蟒蛇版本:3.5.2

FileWriter对象缓冲它收集的事件,然后在缓冲区已满后将它们写入磁盘。 对FileWriter对象的单个调用不足以填充缓冲区,因此需要强制FileWriter刷新缓冲区并将内容写入磁盘。为此,只需在add_summary操作后调用.close()

train_writer.add_summary(summary, 0)
train_writer.close()

这将关闭train_writer对象,您将无法再使用它。

相反,如果只想刷新缓冲区而不关闭文件,则可以使用.flush()方法。

当我遇到完全相同的问题时,更改 sess.run 的顺序对我有用。

_, summary = sess.run([c, merged])

最新更新