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了
 
 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM