tensorboard及summary data

(新手上路,如果有不对的地方,望指正。另外有没有小伙伴一起学习交流啊?)
 
tensorboard为tensorflow提供了可视化,它的重要性不言而喻。
 
tensorboard是通过读取events files来显示的,events file则包含在图计算时生成的summary data。
  1. 1 tf.summary.scalar('mean', mean)
    2 tf.summary.histogram('histogram', var)

     

1.summary data

某个summary操作原型:
    1. 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为我们提供了这个函数:
    1. merged=tf.summary.merge_all(key=tf.GraphKeys.SUMMARIES)
      #Merges all summaries collected in the default graph.

       

把图中所有的summary数据合并在一起,一个run就能启动所有的summary operations。像这样:
    1. 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写到的位置,以及可选的图。
    1. train_writer = tf.summary.FileWriter(FLAGS.summaries_dir +'/train',
      sess.graph)

       

把每一次run的信息和得到的数据加到writer里面
    1. 1 train_writer.add_run_metadata(run_metadata, 'step%03d'% i)
      2 train_writer.add_summary(summary, i)

       

最后把writer关掉,大功告成。
    1. 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了
 
 





posted @ 2017-04-03 23:33  武方绿  阅读(12584)  评论(2编辑  收藏  举报