【问题标题】:TensorBoard does not show scalarsTensorBoard 不显示标量
【发布时间】:2017-12-25 16:55:34
【问题描述】:

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

【问题讨论】:

    标签: tensorflow tensorboard


    【解决方案1】:

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

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

    这将关闭train_writer 对象,您不能再使用它了。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-18
        • 2017-05-18
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 2019-08-14
        • 2021-06-03
        • 2021-04-11
        相关资源
        最近更新 更多