tf.xxx与summary有关的函数
Summary的作用
TensorFlow中的summary主要是用于观察变量、直方图等一系列变量,然后在Tensorboard中查看,方便我们可视化训练过程。
tf.summary.scalar()
- 输出一个
Summary
protocol buffer,它包括一个单一scalar的值.- 通常可以用于观察单一变量的值,如学习率或者损失.
tf.summary.histogram()
- 输出一个
Summary
protocol buffer,它包括一个直方图。- 通常可以用于观察梯度或者权重的分布,其主要用于数据分布
tf.summary.merge_all()
- TensorFlow中的Operations不会被执行,除非你run它或者另外的op依赖于他们的输出。我们刚刚创建的那些summary的节点对于我们的graph来说是处在外部的,因为图中没有op依赖于这些节点。所以为了产生summaries,我们需要运行所有summary的节点。如果手工管理这些节点是枯燥重复的,所以使用
tf.summary.merge_all
来将它们合并成一个op来产生summary数据。- 之后,我们就可以只用运行合并的节点,来产生一个序列化的Summary protocol对象,它包含了在指定步你所有的summary数据。然后我们可以将summary数据通过下面的函数写入磁盘。
tf.summary.FileWriter()
- 用于获取一个FileWriter对象,它会在指定的路径创建一个event文件,然后将summaries和events添加进去。
- 这个添加过程和训练过程是异步的,因此不影响训练速度。