TensorFlow-6-TensorBoard 可視化學(xué)習(xí)

學(xué)習(xí)資料:
https://www.tensorflow.org/get_started/summaries_and_tensorboard

中文翻譯:
http://wiki.jikexueyuan.com/project/tensorflow-zh/how_tos/summaries_and_tensorboard.html

今天學(xué)的內(nèi)容是 TensorBoard
它的作用就是可以把復(fù)雜的神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程給可視化愉择,可以更好地理解 調(diào)試 優(yōu)化程序劫乱。

在之前的幾節(jié),我們都只是建立了模型锥涕,例如這個代碼:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_softmax.py

這一節(jié)我們我們可以把想看的東西顯示出來衷戈,如 accuracy,cross entropy层坠,bias 和 weights 等等殖妇。

先來看效果:

如下圖,就可以在 Tensorboard 的 scalars 下看到 accuracy破花,cross entropy谦趣,dropout,layer1 和 layer2 的 bias 和 weights 的趨勢


主要用到的了下面四個方法
其他可以看 Summary Operations:
https://www.tensorflow.org/api_guides/python/summary

  • tf.summary.scalar
  • tf.summary.histogram
  • tf.summary.merge_all
  • tf.summary.FileWriter

1. tf.summary.scalar

當(dāng)你想知道 learning rate 如何變化時座每,目標(biāo)函數(shù)如何變化時前鹅,就可以通過向節(jié)點附加 tf.summary.scalar 操作來分別輸出學(xué)習(xí)速度和期望誤差,可以給每個 scalary_summary 分配一個有意義的標(biāo)簽為 'learning rate' 和 'loss function'峭梳,執(zhí)行后就可以看到可視化的圖表舰绘。

2. tf.summary.histogram

當(dāng)你想看 activations, gradients 或者 weights 的分布時葱椭,可以用 tf.summary.histogram 捂寿。
如下圖,顯示了每一步的分布挫以,越靠前面就是越新的步數(shù)的結(jié)果者蠕。

3. tf.summary.merge_all

在 TensorFlow 中,所有的操作只有當(dāng)你執(zhí)行掐松,或者一個操作依賴于它的輸出時才會運行踱侣。為了生成 summaries,我們需要運行所有 summary nodes大磺,所以就用 tf.summary.merge_all 來將它們合并為一個操作抡句,這樣就可以產(chǎn)生所有的 summary data。

4. tf.summary.FileWriter

最后杠愧,為了將 summary data 寫入磁盤待榔,需要將 Summary protobuf 對象傳遞給 tf.summary.FileWriter。在這個造函數(shù)中包含了參數(shù) logdir,這個 logdir 很重要锐锣,所有事件都會寫到它所指的目錄下腌闯。


那么上面的圖是怎么產(chǎn)生的呢?

完整代碼有點長雕憔,請前往鏈接:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py

如果是 mac 的話姿骏,可以在終端運行上述代碼:

$ python mnist_with_summaries.py

然后就可以看到打印過程:

注意代碼里將 log dir 定義為下面這個地址:

所以在打開 tensorboard 時,輸入相應(yīng)的位置:

$ tensorboard --logdir=/tmp/tensorflow/mnist/logs/mnist_with_summaries

輸入上述命令后斤彼,會打印一個 IP 地址分瘦,在瀏覽器打開

這樣,就可以看到 bar 上的幾個板塊了:

除上面幾個外琉苇,還可以在 graphs 里可以看到 TensorFlow model嘲玫。
更詳細(xì)的可以查看:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tensorboard


再聊細(xì)一點:

關(guān)于 scalars 的生成
代碼中有這樣幾行:

      with tf.name_scope('weights'):
        weights = weight_variable([input_dim, output_dim])
        variable_summaries(weights)
      with tf.name_scope('biases'):
        biases = bias_variable([output_dim])
        variable_summaries(biases)

在這里對 wights 和 bias 作用了 variable_summaries
variable_summaries 里面有計算 mean并扇,max去团,min,stddev 的 tf.summary.scalar 操作拜马。

  def variable_summaries(var):
    """Attach a lot of summaries to a Tensor (for TensorBoard visualization)."""
    with tf.name_scope('summaries'):
      mean = tf.reduce_mean(var)
      tf.summary.scalar('mean', mean)
      with tf.name_scope('stddev'):
        stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
      tf.summary.scalar('stddev', stddev)
      tf.summary.scalar('max', tf.reduce_max(var))
      tf.summary.scalar('min', tf.reduce_min(var))
      tf.summary.histogram('histogram', var)

執(zhí)行后渗勘,就可以看到下圖:


TensorFlow 系
TensorFlow-5: 用 tf.contrib.learn 來構(gòu)建輸入函數(shù)
TensorFlow-4: tf.contrib.learn 快速入門
TensorFlow-3: 用 feed-forward neural network 識別數(shù)字
TensorFlow-2: 用 CNN 識別數(shù)字
TensorFlow-1: 如何識別數(shù)字


推薦閱讀 歷史技術(shù)博文鏈接匯總
http://www.reibang.com/p/28f02bb59fe5
也許可以找到你想要的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市俩莽,隨后出現(xiàn)的幾起案子旺坠,更是在濱河造成了極大的恐慌,老刑警劉巖扮超,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件取刃,死亡現(xiàn)場離奇詭異,居然都是意外死亡出刷,警方通過查閱死者的電腦和手機璧疗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馁龟,“玉大人崩侠,你說我怎么就攤上這事】篱荩” “怎么了却音?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長矢炼。 經(jīng)常有香客問我系瓢,道長,這世上最難降的妖魔是什么句灌? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任夷陋,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘骗绕。我一直安慰自己藐窄,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布爹谭。 她就那樣靜靜地躺著枷邪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诺凡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天践惑,我揣著相機與錄音腹泌,去河邊找鬼。 笑死尔觉,一個胖子當(dāng)著我的面吹牛凉袱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播侦铜,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼专甩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钉稍?” 一聲冷哼從身側(cè)響起涤躲,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贡未,沒想到半個月后种樱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡俊卤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年嫩挤,在試婚紗的時候發(fā)現(xiàn)自己被綠了消恍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岂昭。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖狠怨,靈堂內(nèi)的尸體忽然破棺而出约啊,到底是詐尸還是另有隱情,我是刑警寧澤取董,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布棍苹,位于F島的核電站,受9級特大地震影響茵汰,放射性物質(zhì)發(fā)生泄漏枢里。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栏豺。 院中可真熱鬧彬碱,春花似錦、人聲如沸奥洼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灵奖。三九已至嚼沿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓷患,已是汗流浹背骡尽。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擅编,地道東北人攀细。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像爱态,于是被迫代替她去往敵國和親谭贪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容