我的Tensorboard不起作用,继续说'没有找到标量数据'

时间:2016-10-30 17:28:24

标签: tensorflow scalar tensorboard

我对Tensorboard很新,并想建立一个。

我按照与某人已经完成相同的程序,他们说它有效,但在我的机器上它不起作用。<登记/> 我运行Session并在中间合并所有摘要。
然后,我使用SummaryWriter在文件夹/ logs / test下创建一个事件。
在for循环中,我将摘要添加到writer对象。

当我屯'tensorboard --logdir = / logs / test'时我什么也看不见.....
我认为没有什么我想念的,我真的不知道为什么这段代码不起作用。

有人能搞清楚吗?非常感谢!

示例代码如下:

X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)

add = tf.add(X, Y)
mul = tf.mul(X, Y)

add_hist = tf.scalar_summary("add_scalar", add)
mul_hist = tf.scalar_summary("mul_scalar", mul)

merged = tf.merge_all_summaries()

with tf.Session() as sess:
    init = tf.initialize_all_variables()

    sess.run(init)

    writer = tf.train.SummaryWriter("./logs/test", sess.graph_def)

for step in range(100):
    sess.run(add, feed_dict = {X: step*1.0, Y: 2.0})

    summary = sess.run(merged, feed_dict = {X: step*1.0, Y: 2.0})
    writer.add_summary(summary, step)

1 个答案:

答案 0 :(得分:0)

SummaryWriter缓冲事件的性能,以最小化磁盘I / O请求。 您没有在结束时关闭摘要编写器,并且您编写的事件数量不足以触发写入磁盘。 您可以使用SummaryWriter.flush强制将事件写入磁盘。

import tensorflow as tf

X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)

add = tf.add(X, Y)
mul = tf.mul(X, Y)

add_hist = tf.scalar_summary("add_scalar", add)
mul_hist = tf.scalar_summary("mul_scalar", mul)

merged = tf.merge_all_summaries()

with tf.Session() as sess:
    init = tf.initialize_all_variables()

    sess.run(init)

    writer = tf.train.SummaryWriter("./logs/test", sess.graph)

    for step in range(100):
        sess.run(add, feed_dict = {X: step*1.0, Y: 2.0})

        summary = sess.run(merged, feed_dict = {X: step*1.0, Y: 2.0})
        writer.add_summary(summary, step)
        writer.flush()
    write.close()