【轉(zhuǎn)】TensorBoard 在1.0 版本后的使用
注意:在閱讀本文之前,請務(wù)必更新你的瀏覽器。Chrome大法好!?
數(shù)據(jù)、模型可視化是TensorFlow的一項重要的功能,安裝后自帶的TensorBoard是一個很強大的工具,但目前的教程大多都停留在TensorFlow 1.0 版本之前,一些函數(shù)已經(jīng)改名無法使用,因此寫一篇比較新的使用說明。
主要區(qū)別
如果之前使用過TensorBoard,其實只是換一下函數(shù)名就可以了。在Github上新版本說明文檔中,已經(jīng)有了對這一方面的說明:
Replace tf.scalar_summary, tf.histogram_summary, tf.audio_summary, tf.image_summary with tf.summary.scalar, tf.summary.histogram, tf.summary.audio, tf.summary.image, respectively. The new summary ops take name rather than tag as their first argument, meaning summary ops now respect TensorFlow name scopes.
也就是說,summary獨立出來了,以前tf.XXX_summary
這樣的下劃線變成了tf.summary.XXX
的格式。
數(shù)據(jù)可視化 對于標(biāo)量
如果我們想對標(biāo)量在訓(xùn)練中可視化,可以使用tf.summary.scalar()
,比如損失loss:
loss?=?tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1]))? tf.summary.scalar('loss',loss)
1212
得到一個loss的summary。
對于參數(shù)
應(yīng)使用tf.summary.histogram()
,如全鏈接的權(quán)重:
tf.summary.histogram("/weights",Weights)
11merge并運行
就像變量需要初始化一樣,summary也需要merge:
merged?=?tf.summary.merge_all()
11
之后定義一個輸出器記錄下在運行中的數(shù)據(jù):
writer?=?tf.summary.FileWriter("output/",sess.graph)
11
最后記得在訓(xùn)練過程中執(zhí)行這兩個模塊:
for?i?in?range(1000): ????sess.run(train_step,feed_dict={xs:x_data,ys:y_data}) ????if?i%50==0:#?50次記錄一次 ????????result?=?sess.run(merged,feed_dict={xs:x_data,ys:y_data}) ????????writer.add_summary(result,i)
1234512345TensorBoard 運行
安裝TensorFlow時已經(jīng)自帶TensorBoard,如果直接在命令行中輸入tensorboard
而沒有對應(yīng)指令,可以從安裝目錄下執(zhí)行:
python?~/.local/lib/python2.7/site-packages/tensorflow/tensorboard/tensorboard.py?--logdir=output/
11
運行成功后,會顯示:
(You?can?navigate?to?http://XXX.XXX.XXX.XXX:6006)
11
然后在瀏覽器中輸入這個地址即可。
注意?
IE以及低版本的Chrome都對TensorBoard不兼容(firefox據(jù)說也不好用),會出現(xiàn)白屏或者點開loss圖沒有內(nèi)容的情況。因為用的臺式電腦,之前用的人裝了360,我也就繼續(xù)用了,結(jié)果在這里糾結(jié)了很久……
行了,這就成功了~
現(xiàn)在越學(xué)越覺得TensorFlow復(fù)雜了。。