TensorFlow學習筆記之TensorBoard

TensorFlow自帶的一個強大的視覺化工具,在Win7 64位Anaconda安裝Python 3.6.1採用pip install tensorflow-gpu==1.4.0(版本可變,如1.7.0(upgrade),或1.2.1(degrade)等)安裝TensorFlow時自帶的TensorBoard,具體頁面示例如下所示:

在上圖中,GRAPHS選項用於顯示網路架構,IMAGES選項展示訓練過程中記錄的影象,HISTOGRAMS選項展示訓練過程中記錄的資料的分佈圖,AUDIO展示訓練過程中記錄的音訊,其它選項功能不再一一介紹。TensorBoard在執行過程中,記錄結構化的資料,執行一個本地伺服器,監聽6006埠,請求時,分析記錄的資料,繪製相關曲線圖。

為了讓TensorBoard在執行時顯示相關資料,除了要記錄相關日誌檔案,還要程式設計新增要檢視的輸出,將其新增到日誌檔案,建立日誌檔案的示例如下(儲存路徑LOG_FOLDER “\\train”):

train_writer = tf.summary.FileWriter(LOG_FOLDER   '\\val', sess.graph)
test_writer = tf.summary.FileWriter(LOG_FOLDER   '\\val')

然後可以根據要檢視的變數,新增到train_writer或test_writer中,不同版本的TensorFlow新增方法,在程式設計時還是有些變化的,如下所示在tensorflow-gpu==1.4.0新增的具體方法如下所示:

train_writer.add_summary(summary_string, global_step_np)

然後就可以在執行Python檔案的過程中,記錄你想要追蹤的Tensor,如下圖所示:

with tf.name_scope('output_act'):
hidden = tf.nn.relu6(tf.matmul(reshape, output_weights[0])   output_biases)
tf.histogram_summary('output_act', hidden)

在上述程式碼中,histogram_summary用於生成分佈圖,也可以用scalar_summary記錄數值。具體示例如下:

def variable_summaries(var, name):
"""Attach a lot of summaries to a Tensor."""
with tf.name_scope('summaries'):
mean = tf.reduce_mean(var)
tf.scalar_summary('mean/'   name, mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_sum(tf.square(var - mean)))
tf.scalar_summary('sttdev/'   name, stddev)
tf.scalar_summary('max/'   name, tf.reduce_max(var))
tf.scalar_summary('min/'   name, tf.reduce_min(var))
tf.histogram_summary(name, var)

最後要新增如下操作,代表執行所有summary操作,這樣可以避免人工執行每一個summary op:

merged = tf.merge_all_summaries()

summary, _, l, predictions = 
session.run([merged, optimizer, loss, train_prediction], options=run_options, feed_dict=feed_dict)
train_writer.add_summary(summary, step)

接下來要開啟TensorBoard,如下步驟:

1.在命令列視窗(此處指Anaconda Prompt)輸入:

tensorboard --logdir E:\VSproject\Pycharm\mnist-master\tboard_logs(日誌檔案路徑示例,如前文LOG_FOLDER   "\\train")

2. 在瀏覽器位址列輸入 localhost:6006/ 回車即可,正常情況下便可顯示TensorBoard介面。

參考:

1.
TensorFlow深度學習筆記 Tensorboard入門

2.
TensorFlow學習筆記(7):TensorBoard——Tensor與Graph視覺化

3.
Windows下TensorBoard使用注意事項