一、基本介紹
TensorBoard是TensorFlow的一個可視化工具,可以用來展示訓練的模型結構、訓練過程中的參數和網絡參數的分佈等等。而tensorboard–logdir則是TensorBoard中最常用的命令之一,它指定了TensorBoard要加載哪個目錄下的日誌文件。
二、常用場景
1、訓練一個模型
python train.py --logdir=path/to/logdir
2、從已經存在的日誌文件中恢復模型
python train.py --logdir=path/to/logdir --restore=true
3、使用TensorBoard可視化模型訓練過程
tensorboard --logdir=path/to/logdir
三、使用方法
1、訓練模型並創建日誌文件
如下所示,使用TensorFlow訓練一個模型,並在指定的目錄下創建日誌記錄文件:
import tensorflow as tf
# ...
# Create a summary writer
writer = tf.summary.FileWriter(logdir)
# ...
2、使用tensorboard–logdir加載日誌文件
在終端中使用以下命令,啟動TensorBoard,使用tensorboard–logdir加載所需目錄下的日誌文件:
tensorboard --logdir=path/to/logdir
3、在瀏覽器中查看可視化圖表
在瀏覽器中打開http://localhost:6006/,即可查看TensorBoard可視化展示的模型訓練情況。
四、高級用法
1、同時記錄多個日誌文件
在訓練多個模型或者在不同的時間段內訓練同一個模型時,可以使用如下所示的代碼,同時記錄多個日誌文件:
writer1 = tf.summary.FileWriter(logdir1)
writer2 = tf.summary.FileWriter(logdir2)
# ...
2、使用命名空間
可以使用命名空間對TensorBoard中的可視化數據進行分組、分類。代碼如下:
import tensorflow as tf
with tf.name_scope('summaries'):
tf.summary.scalar('loss', loss)
tf.summary.scalar('accuracy', accuracy)
tf.summary.histogram('histogram_loss', loss)
summary_op = tf.summary.merge_all()
# ...
merged_summary = sess.run(summary_op, feed_dict=feed_dict_for_batch)
writer.add_summary(merged_summary, global_step=step)
3、使用協程
可以使用協程並行地訓練多個模型,並將日誌記錄文件合併到同一個目錄中,以供TensorBoard可視化工具處理。代碼如下:
import tensorflow as tf
import os
# ...
def train(logdir):
# ...
writer = tf.summary.FileWriter(logdir)
# ...
def parallel_train():
logdir_base = "/tmp/demo"
for i in range(4):
logdir = os.path.join(logdir_base, "model%d" % i)
pid = os.fork()
if pid == 0:
train(logdir)
exit()
else:
print("Started process %d" % pid)
os.wait()
# ...
五、注意事項
1、tensorboard–logdir需要指定TensorBoard要加載哪個目錄下的日誌文件。
2、多步驟訓練時,需在TensorFlow的Graph中使用不同的命名空間,並將每個步驟的輸出對TensorFlow的Summary操作,然後將結果輸出到指定目錄下的日誌文件中。
3、定義完TensorFlow Graph之後,需要在Session的上下文中打開一個Summary Writer,並在每個步驟結束時調用Writer進行日誌記錄。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/307251.html