tensorboard使用案例

最近在寫tensorflow的程序,想看看訓練過程中損失函數(shù)等變化,打算用用tensorboard。

tensorboard是tensorflow的可視化工具,可以顯示圖、展示中間結(jié)果。

相關(guān)鏈接:https://tensorflow.google.cn/get_started/summaries_and_tensorboard

代碼如下:

Jupyter代碼截圖

tensorboard是tensorflow默認自帶的模塊,專門用來結(jié)果可視化。主要用的就是tf.summary。

1.定義:

這個模塊我們主要使用的就是tf.sumary.histogram和tf.summary.scalar。這兩個類在代碼里類似tf的變量、占位符等,都在圖中定義。

tf.sumary.histogram:直方圖,只要展示tensor的分布,并不能表示tensor的值。

主要參數(shù)如下,

????tf.sumary.histogram(name, values, collections=None, family=None):

? ? name: string,表示在tensorboard顯示的名稱

????values: tensor,一般是多維tensor

? ? collections: 表示將這個類加入到哪個集合中。

? ? family: 類似命名前綴。一般只要你在定義圖的時候進行了命名空間定義,如name_scope、variable_scope,就不需要這family了。

? ? 展示一下我測試時的結(jié)果(大家看個樣子就行了,不要在意結(jié)果是什么樣子)


histogram

tf.summary.scalar:標量,只能展示一個實數(shù)值,也就是一般用來顯示準確度、損失等,而不能用來展示訓練好的權(quán)重矩陣或者向量。

參數(shù)和直方圖類似,只是values/tensor必須滿足是單值實數(shù)。

依舊秀一張丑圖:

多條線是因為我跑了很多次。

scalar

2.Writer

????writer = tf.summary.FileWriter('./graph',sess.graph)

? ? 這是一個用來保存圖的類,因為如果上一步,你什么要看的(直方圖、標量)都沒有,也是可以展示你的圖的。

單純展示定義的圖

? ? 偷懶了,直接上源碼的解釋,logdir 存儲地址,graph 就是定義的圖

def__init__(self,logdir,graph=None,max_queue=10

????????????????????,flush_secs=120,graph_def=None,filename_suffix=None):? ??

? ??Args:

????????logdir: A string. Directory where event file will be written.

????????graph: A `Graph` object, such as `sess.graph`.

????????max_queue: Integer. Size of the queue for pending events and summaries.

????????flush_secs: Number. How often, in seconds, to flush the

????????pending events and summaries to disk.

????????graph_def: DEPRECATED: Use the `graph` argument instead.

????????filename_suffix: A string. Every event file's name is suffixed with

????????`suffix`.

3.打包

? ??merged = tf.summary.merge_all()

? ? 這里就更加不求甚解了,直接把前面第一步定義的summary節(jié)點,打包,便于下面run。這里就不展示參數(shù)什么的了。

4.run

? ??eval_c,eval_summary = sess.run([c,merged])

5.寫入writer

? ??writer.add_summary(eval_summary,i)

? ? 后面的i就是繪制圖的時間(step)軸,如果沒有后面的參數(shù),只會寫最后一個。

? ? 程序的最后記得writer.close()

6.展示

? ? 跑完之后,要展示需要在命令行運行 tensorboard? --logdir="./graph"

? ? 接著用瀏覽器登入http://127.0.0.1:6006/ 就能看結(jié)果,但是一定要關(guān)掉VPN的全局模式,我就因為這個迷茫了半天,不知道自己錯在哪里。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 簡單線性回歸 import tensorflow as tf import numpy # 創(chuàng)造數(shù)據(jù) x_dat...
    CAICAI0閱讀 3,565評論 0 49
  • 2016年08月04日星期四 Demo地址 Realm數(shù)據(jù)庫,不支持自增主鍵怎么搞?直接上干貨(我用的是swift...
    mqhong閱讀 10,608評論 5 2
  • 在傳統(tǒng)的思維中,一直都是“薄利多銷”,但是一旦你開始做生意的時候,你會發(fā)現(xiàn)事實和傳統(tǒng)上的完全不一樣,盡管你的利潤已...
    王通專欄閱讀 343評論 0 2
  • 水汽濕重 薄霧朦朧 今天的月兒 像是某人瞳孔中 光輝的一撇 尖尖的兩勾 勾出你的模樣 我的心腸
    安伯伯閱讀 245評論 0 0