(新手上路,如果有不对的地方,望指正。另外有没有小伙伴一起学习交流啊?)
tensorboard为tensorflow提供了可视化,它的重要性不言而喻。
tensorboard是通过读取events files来显示的,events file则包含在图计算时生成的summary data。
-
1 tf.summary.scalar('mean', mean) 2 tf.summary.histogram('histogram', var)
1.summary data
某个summary操作原型:
tf.summary.scalar(name, tensor, collections=None)
这些summary的操作都是对某个tensor产生单个的summary protocol buffer,是一种能被tensorboard读取的格式。Summaries provide a way to export condensed information about a model, which is then accessible in tools such as TensorBoard.summary的操作对于整个图来说相当于是外设,因为tensorflow是由结果驱动的,而图的结果并不依赖于summary操作,所以summary操作需要被run。整个图经常需要检测许许多多的值,也就是许多值需要summary operation,一个个去run来启动太麻烦了,tensorflow为我们提供了这个函数:
-
merged=tf.summary.merge_all(key=tf.GraphKeys.SUMMARIES) #Merges all summaries collected in the default graph.
把图中所有的summary数据合并在一起,一个run就能启动所有的summary operations。像这样:
-
summary, acc = sess.run([merged, accuracy], feed_dict=feed_dict(False))
btw也有单独merge函数。tensorboard是从磁盘中读events files的。tensorflow用一个tensorflow.summary.FileWriter将图 运行得到的summary 数据写到磁盘里。FileWriter的构造器包含一个logdir也就是summary data写到的位置,以及可选的图。
-
train_writer = tf.summary.FileWriter(FLAGS.summaries_dir +'/train', sess.graph)
把每一次run的信息和得到的数据加到writer里面
-
1 train_writer.add_run_metadata(run_metadata, 'step%03d'% i) 2 train_writer.add_summary(summary, i)
最后把writer关掉,大功告成。
-
1 train_writer.close()
2.tensorboard
上面的步骤成功之后,events file就躺在你磁盘上logdir位置上了。在命令行键入tensorboard --logdir=path/to/files我的logdir是/tmp/mnist_logs/train,我的代码就是在浏览器里打开,localhost:6006就这样可以看到各个数据的变化情况。遇到的bug:在火狐浏览器中event的一片黑,换成Google自家chrome浏览器就OK了