将 tensorboard 与 Jupyter notebooks 结合使用
Using tensorboard with Jupyter notebooks
我正在尝试从 Jupyter notebook 向 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)
如何让它与后续的 运行 一起使用?
我通过在单元格末尾或另一个单元格中添加它来解决这个问题,使其成为 运行 之间的 运行。
tf.reset_default_graph()
您可以尝试的另一件事是使用
sess = tf.InteractiveSession()
当 运行ning tensorboard:
时,我在 jupyter 中遇到了另一种错误
InvalidArgumentError: You must feed a value for placeholder tensor...
但这已通过与上述相同的方法解决 - 首先 运行 在一个单元格上:
tf.reset_default_graph()
然后重新运行 图表
你可以试试这个
第一个单元格,只有 运行 一次。这是您创建图表的地方。
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)
第二个单元格,运行 次数不限。这是您初始化和 运行 您的图形的地方(您也不能每次都 运行 初始化操作)。除非你使用新的编写器,否则你每次都会将摘要写入同一个 tensorboard 文件。
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()
也有效,因为它会删除所有节点,然后您可以重新创建它们,但这不是必需的。
我为 tensorboard 集成编写了一个 Jupyter 扩展。它可以:
- 只需在 Jupyter 中单击一个按钮即可启动 tensorboard
- 管理多个张量板实例。
- 与 Jupyter 界面无缝集成。
Github: https://github.com/lspvic/jupyter_tensorboard
jupyter tensorboard integration
我正在尝试从 Jupyter notebook 向 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)
如何让它与后续的 运行 一起使用?
我通过在单元格末尾或另一个单元格中添加它来解决这个问题,使其成为 运行 之间的 运行。
tf.reset_default_graph()
您可以尝试的另一件事是使用
sess = tf.InteractiveSession()
当 运行ning tensorboard:
时,我在 jupyter 中遇到了另一种错误InvalidArgumentError: You must feed a value for placeholder tensor...
但这已通过与上述相同的方法解决 - 首先 运行 在一个单元格上:
tf.reset_default_graph()
然后重新运行 图表
你可以试试这个
第一个单元格,只有 运行 一次。这是您创建图表的地方。
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)
第二个单元格,运行 次数不限。这是您初始化和 运行 您的图形的地方(您也不能每次都 运行 初始化操作)。除非你使用新的编写器,否则你每次都会将摘要写入同一个 tensorboard 文件。
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()
也有效,因为它会删除所有节点,然后您可以重新创建它们,但这不是必需的。
我为 tensorboard 集成编写了一个 Jupyter 扩展。它可以:
- 只需在 Jupyter 中单击一个按钮即可启动 tensorboard
- 管理多个张量板实例。
- 与 Jupyter 界面无缝集成。
Github: https://github.com/lspvic/jupyter_tensorboard
jupyter tensorboard integration