Windows 上的 Tensorboard 报告 "No scalar data was found"



在https://github.com/binroot/binroot/tensorflow-book/blob/master/master/ch02_basics/ch02_basics/concept08_tensorboard.ipynb 命令面板中运行 tensorboard --logdir=path/to/logs时,我会在http://0.0.0.0.0:6006中启动张板b'47'。

然后,当我去Explorer并查看板上的董事会时,找不到标量数据。我不确定我缺少什么。

我在python脚本中拥有的代码副本:

import tensorflow as tf
import numpy as np
raw_data = np.random.normal(10, 1, 100)
alpha = tf.constant(0.05)
curr_value = tf.placeholder(tf.float32)
prev_avg = tf.Variable(0.)
update_avg = alpha * curr_value + (1 - alpha) * prev_avg
avg_hist = tf.summary.scalar("running_average", update_avg)
value_hist = tf.summary.scalar("incoming_values", curr_value)
merged = tf.summary.merge_all()
writer = tf.summary.FileWriter("./logs")
init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    for i in range(len(raw_data)):
        summary_str, curr_avg = sess.run([merged, update_avg], feed_dict=
{curr_value: raw_data[i]})
        sess.run(tf.assign(prev_avg, curr_avg))
        print(raw_data[i], curr_avg)
        writer.add_summary(summary_str, i)

张板在Windows上有一个已知问题。

总而言之,Tensorboard的--logdir可以采取一条路径,例如--logdir=/my/path,但用户也可以将名称指定为一个或几个逗号分隔的路径,例如--logdir=foo:/my/path1,bar:/my/path2

问题在于,此命名系统与Windows驱动器名称不太好。指定--logdir=C:mypath时,张板如何知道C:是驱动器名称而不是路径名?好吧,这不是,您最终会得到一个不错的张板网页,完全没有摘要。

解决方案要么省略驱动器字母,并确保您从正确的驱动器开始,要么更稳固,以便始终提供一个路径名称,例如--logdir foo:"C:My pathto my logs"

update

自TF 1.5以来,Tensorboard学会了识别Windows驱动器,并且不再将其视为标签。

不使用绝对路径,例如" - logdir = path/to/logs"。尝试较短的路径,例如" - logdir = path",它适用于我的代码。

相关内容

最新更新