在開始之前首先說一下,因為我們的網絡越來越深,資料量也越來越大,是以沒有gpu的同學跑起來很浪費時間,而且對電腦傷害也很大,推薦一個免費試用gpu的網站,百度搜尋colab~
接下來說一下如何在自定義訓練中使用tensorboard:
#建立summary writer執行個體
tf.summary.create_file_writer(
logdir, max_queue=None, flush_millis=None, filename_suffix=None, name=None
)
"""
logdir 一個字元串,指定要在其中寫入事件檔案的目錄。
max_queue 要排隊的摘要數量最多;隊列變大後将重新整理。預設為10
flush_millis 兩次重新整理之間的最大間隔。預設為120,000
filename_suffix 事件檔案名的可選字尾。預設為。 .v2
name 建立作者的操作的名稱。
"""
#建立圖檔摘要
tf.summary.image(
name, data, step=None, max_outputs=3, description=None
)
"""
name 此摘要的名稱。用于TensorBoard的summary标記将是此名稱的任何活動名稱範圍的字首。
data 阿Tensor具有形狀表示的像素資料,其中,是圖像的數量,并且是圖像的高度和寬度,和是信道的數目,這應該是1,2,3,或4(灰階,灰階與α,RGB ,RGBA)。任何尺寸都可能是靜态未知的(即)。浮點資料将被裁剪為[0,1)的範圍。 [k, h, w, c]khwcNone
step int64此摘要的 顯式可廣播單調階躍值。如果省略,則預設為tf.summary.experimental.get_step(),不能為None。
max_outputs 可選int或等級0整數Tensor。每個步驟最多隻能發出這麼多圖像。如果 提供的圖像數量過多,則将使用前許多圖像,而其餘圖像将被靜默丢棄。 max_outputsmax_outputs
description 此摘要的可選長格式描述,作為一個常量str。支援降價。預設為空。
"""
#建立直方圖摘要
tf.summary.histogram(
name, data, step=None, buckets=None, description=None
)
"""
name 此摘要的名稱。用于TensorBoard的summary标記将是此名稱的任何活動名稱範圍的字首。
data Tensor任何形狀的 A。必須可轉換為float64。
step int64此摘要的 顯式可廣播單調階躍值。如果省略,則預設為tf.summary.experimental.get_step(),不能為None。
buckets 可選正int。除了兩個邊緣情況外,輸出将具有這麼多存儲桶。如果沒有資料,則沒有存儲桶。如果有資料,但所有點都具有相同的值,那麼将有一個存儲桶,其左端點和右端點相同。
description 此摘要的可選長格式描述,作為一個常量str。支援降價。預設為空。
"""
#建立文本摘要
tf.summary.text(
name, data, step=None, description=None
)
"""
name 此摘要的名稱。用于TensorBoard的summary标記将是此名稱的任何活動名稱範圍的字首。
data UTF-8字元串張量值。
step int64此摘要的 顯式可廣播單調階躍值。如果省略,則預設為tf.summary.experimental.get_step(),不能為None。
description 此摘要的可選長格式描述,作為一個常量str。支援降價。預設為空。
"""
#建立一個标量摘要
tf.summary.scalar(
name, data, step=None, description=None
)
"""
name 此摘要的名稱。用于TensorBoard的summary标記将是此名稱的任何活動名稱範圍的字首。
data 實數标量值,可轉換為float32張量。
step int64此摘要的 顯式可廣播單調階躍值。如果省略,則預設為tf.summary.experimental.get_step(),不能為None。
description 此摘要的可選長格式描述,作為一個常量str。支援降價。預設為空。
"""
tf.summary.trace_export()#停止trace(追蹤),并将之前trace記錄到的資訊寫入profiler日志檔案
tf.summary.trace_off()#停止trace,并舍棄之前的trace記錄
tf.summary.trace_on()#開始trace以記錄計算圖和分析資訊
#tf.summary用法示例
tf.summary.scalar('accuracy',acc) #生成準确率标量圖
merge_summary = tf.summary.merge_all()
train_writer = tf.summary.FileWriter(dir,sess.graph)#定義一個寫入summary的目标檔案,dir為寫入檔案位址
......(交叉熵、優化器等定義)
for step in xrange(training_step): #訓練循環
train_summary = sess.run(merge_summary,feed_dict = {...})#調用sess.run運作圖,生成一步的訓練過程資料
train_writer.add_summary(train_summary,step)#調用train_writer的add_summary方法将訓練過程以及訓練步數儲存