我正在尝试从Jupyter笔记本发送一些值到tensorboard
with tf.Session() as sess:
param = tf.Variable(0.1)
param_summary = tf.scalar_summary("param", param)
merge_op = tf.merge_all_summaries()
writer = tf.train.SummaryWriter("/tmp/tflogs/test_tb", sess.graph)
init = tf.initialize_all_variables()
sess.run(init)
for i in range(10):
ass = tf.assign(param, i*0.5)
sess.run(ass)
mo = sess.run(merge_op) # Fails with "Duplicate tag param found in summary inputs" message
writer.add_summary(mo,i)
writer.flush()
问题是第一次使用InvalidArgumentError: Duplicate tag param found in summary inputs
消息后失败(此处为全文:http://pastebin.com/dTBdCkHc)
如何使其与后续运行一起使用?
答案 0 :(得分:3)
我通过在单元格末尾添加它或在运行之间运行的另一个单元格来解决这个问题。
tf.reset_default_graph()
您可以尝试的另一件事是使用
sess = tf.InteractiveSession()
答案 1 :(得分:1)
运行tensorboard时,我在jupyter中遇到了一种不同的错误:
InvalidArgumentError: You must feed a value for placeholder tensor...
但这是通过与上述相同的方法解决的 - 首先在单元格上运行:
tf.reset_default_graph()
然后重新运行图表
答案 2 :(得分:1)
你可以试试这个
第一个细胞,只运行一次。这是您创建图表的地方。
sess = tf.Session()
param = tf.Variable(0.1)
param_summary = tf.scalar_summary("param", param)
merge_op = tf.merge_all_summaries()
writer = tf.train.SummaryWriter("/tmp/tflogs/test_tb", sess.graph)
第二个单元格,可以根据需要运行多次。这是初始化和运行图形的地方(每次都可能无法运行初始化操作)。除非您使用新的编写器,否则每次都会将摘要写入相同的张量板文件。
init = tf.global_variables_initializer() #tf.initialize_all_variables() is deprecated
sess.run(init)
for i in range(10):
ass = tf.assign(param, i*0.5)
sess.run(ass)
mo = sess.run(merge_op) # Fails with "Duplicate tag param found in summary inputs" message
writer.add_summary(mo,i)
writer.flush()
发生的事情是,每次调用您的单元格时,您都会向图形中添加一个新变量和摘要,复制摘要的名称,从而导致错误。 tf.reset_default_graph()
也有效,因为它会删除所有节点,然后您可以再次创建它们,但这不是必需的。
答案 3 :(得分:1)
我为张量板集成编写了一个Jupyter扩展。它可以: