TensorFlow:了解tf.summary.scalar中的`collections`参数

Tok*_*rby 4 python tensorflow tensorboard

我正在与TensorBoard合作tf.summary.scalar.在文档中它有一个arugment collections=None,描述如下:

collections:图表集合键的可选列表.新摘要op将添加到这些集合中.默认为[GraphKeys.SUMMARIES].

我不明白这个描述,以及collections用于什么.有人可以向我解释一下这个问题,或许可以指出一个很好的例子用例吗?

sun*_*ide 8

这是一个隐藏的宝石!您可以为其提供标记摘要节点的所选字符串列表,例如

tf.summary.scalar('learning_rate', p_lr, collections=['train'])
tf.summary.scalar('loss', t_loss, collections=['train', 'test'])
Run Code Online (Sandbox Code Playgroud)

然后按标签获取摘要,例如:

s_training = tf.summary.merge_all('train')
s_test = tf.summary.merge_all('test')
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我经常想在验证阶段记录额外的信息; 在上面的例子中,我不必p_lr在评估(和写入)准确性时为学习率占位符提供值,例如,或者图形的推理部分依赖的任何东西.

例如,提供(仅)自定义类别也具有隐藏节点的良好副作用Supervisor.如果您真的希望控制何时编写摘要(例如sv.summary_computed()在使用情况下Supervisor),那么这是一种简单的方法.

  • 很棒的描述!`collection`s可以更普遍地用于你想要访问所有遍布的东西,例如,如果你想要图中的所有偏差都可以使用.讨论[这里](http://stackoverflow.com/questions/36533723/tensorflow-get-all-variables-in-scope).请参阅`get_collection`文档[here](https://www.tensorflow.org/versions/r0.11/api_docs/python/framework/#get_collection). (2认同)