TensorBoard不显示标量

时间:2017-07-20 06:45:34

标签: tensorflow tensorboard

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

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