Tensorflow:如何为摘要创建新集合?

时间:2017-10-06 13:35:14

标签: python tensorflow tensorboard

我想为摘要创建两个不同的集合。一个用于培训摘要,一个用于验证摘要。

所以我可以使用两个不同的merge_all操作来存储值

merge_all(key=tf.GraphKeys.SUMMARIES)

可以将函数标量添加到集合中。

tf.summary.scalar(
    name,
    tensor,
    collections=None,
    family=None
)

如何为摘要创建新的集合?

1 个答案:

答案 0 :(得分:1)

应该可以使用任意字符串值作为键。它可能看起来像这样:

tf.summary.scalar('tag_a', ...)
tf.summary.scalar('tag_b', ..., collections=["foo"])
merged_a = tf.summary.merge_all()
merged_b = tf.summary.merge_all(key="foo")
writer_a = tf.summary.FileWriter(log_dir + '/collection_a')
writer_b = tf.summary.FileWriter(log_dir + '/collection_b')
for step in range(1000):
  summary_a, summary_b = sess.run([merged_a, merged_b], ...)
  writer_a.add_summary(summary_a, step)
  writer_b.add_summary(summary_b, step)

值得一提的是,人们通常会以一种merge_all操作和多次运行调用的方式配置事物。例如:https://github.com/tensorflow/tensorflow/blob/cf7c008ab150ac8e5edb3ed053d38b2919699796/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py#L142即使使用collections参数分解了摘要系列,TensorBoard仍然会在视觉上将它们表示为不同的运行。另请注意,name参数对应于运行中的每个图表(标记)。