TensorBoard 不显示标量

TensorBoard does not show scalars

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

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])