首先先介绍一下三个summary函数 分别对应不同的类型:

tf.scalar_summary(tags, values, collections=None, name=None)

产生一个标量summary values=1D           tags=1D string 

 

tf.image_summary(tag, tensor, max_images=None, collections=None, name=None)

摘要就是图片形式了 可以在tensorboard中看到这些图片。

专门为图片而定义的summary,tensor必须是4D的 

 shape [batch_size, height, width, channels] 其中channels可以为1 3 4 分别对应 灰度 RGB GRBA

如果max_images是1 那么tag直接就是 tag/image 如果大于1 那就 依次 0 1 2 ......

 

tf.histogram_summary(tag, values, collections=None, name=None) 直方图

 

在TensorFlow中,所有的操作只有当你执行,或者另一个操作依赖于它的输出时才会运行。我们刚才创建的这些节点(summary nodes)都围绕着你的图像:没有任何操作依赖于它们的结果。因此,为了生成汇总信息,我们需要运行所有这些节点。这样的手动工作是很乏味的,因此可以使用 tf.merge_all_summaries 来将他们合并为一个操作。

所以接下来我们就把所有的summary merge一下 到时候see.run的时候只需要 一次即可 。

最后,为了将汇总数据写入磁盘,需要将汇总的protobuf对象传递给tf.train.Summarywriter

SummaryWriter 的构造函数中包含了参数 logdir。这个 logdir 非常重要,所有事件都会写到它所指的目录下。此外,SummaryWriter 中还包含了一个可选择的参数 GraphDef。如果输入了该参数,那么 TensorBoard 也会显示你的图像。

tf.train.SummaryWriter.__init__(logdir, graph_def=None, max_queue=10, flush_secs=120)

创建一个summarywriter 和 event file  ,logdir是你希望file 存储的地址 .

一般来说 graph_def = sess.graph (sess所执行对应的graph,也就是咱们创建的tensor 图)这时候会把我们创建的图也表示出来

tf.train.SummaryWriter.add_summary(summary, global_step=None)

将summary添加进 event file中