文章目錄
- TensorBoard 簡介
- TensorBoard 界面介紹
- TensorBoard 安裝
- TensorBoard 運作
- Pytorch 使用 TensorBoard
- Google Colab中使用 Tensorboard
- Tensor折線圖(Scalars)
TensorBoard 簡介
TensorBoard 是Google開發的一個機器學習可視化工具。其主要用于記錄機器學習過程,例如:
- 記錄損失變化、準确率變化等
- 記錄圖檔變化、語音變化、文本變化等,例如在做GAN時,可以過一段時間記錄一張生成的圖檔
- 繪制模型
具體支援的内容可以參考官方文檔
TensorBoard 界面介紹

TensorBoard 安裝
直接使用pip安裝即可:
pip install
安裝後,在指令行輸入:
tensorboard --help
若可以正常輸出,則說明安裝成功。
TensorBoard 運作
運作啟動指令即可:
tensorboard --logdir my_log
my_log
是TensorBoard的log檔案所在的目錄。Tensorboard面闆中展示的資料都來源于log檔案,一般一次完整的運作生成一份log檔案。
例如,在Pytorch中,我們會調用new一個
SummaryWriter
對象,此時就會建立一個log檔案,之後我們就會調用其
add_something
方法,往log裡面寫日志,之後在TensorBoard面闆中就可以看到資料了。最後在訓練完成後,調用
close
方法結束。
若看到了如下輸出,說明啟動成功:
TensorBoard 2.8.0 at http://localhost:6006/ (Press CTRL+C to quit)
此時隻需要在浏覽器中輸入
http://localhost:6006/
即可進入TensorBoard界面。
Pytorch 使用 TensorBoard
Pytorch使用Tensorboard主要用到了三個API:
-
:這個用來建立一個log檔案,TensorBoard面闆檢視時,也是需要選擇檢視那個log檔案。SummaryWriter
-
: 向log檔案裡面增添資料。例如可以通過add_something
增添折線圖資料,add_scalar
可以增添圖檔。add_image
-
:當訓練結束後,我們可以通過close
方法結束log寫入。close
接下來,我們來模拟記錄訓練過程中準确率的變化。
首先需要new一個
SummaryWriter
對象:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter(log_dir='runs/mock_accuracy')
當運作完該行代碼後,可以看到目前目錄下生成了一個
runs/mock_accuracy
檔案夾,并且裡面有event日志
此時已經可以啟動tensorboard來檢視了:
tensorboard --logdir runs
此時進入tensorboard頁面後,啥都看不到,因為我們還沒有向log裡面寫入任何資料:
接下來使用
add_scalar
繪制準确率折線圖:
for i in range(100):
writer.add_scalar(tag="accuracy", # 可以暫時了解為圖像的名字
scalar_value=i * random.uniform(0.8, 1), # 縱坐标的值
global_step=i # 目前是第幾次疊代,可以了解為橫坐标的值
)
time.sleep(2 * random.uniform(0.5, 1.5))
這裡模拟 1~3 秒完成一次疊代并計算準确率,然後将準确率增添到 accuracy 這個圖下面。
過一會後,我們重新整理頁面,就可以看到我們的準确率變化曲線了:
由于資料還在寫入,是以曲線還在不斷變化。
Google Colab中使用 Tensorboard
在Google Colab中使用Tensorboard隻需要兩行指令:
%load_ext tensorboard # 加載tensorboard擴充插件
%tensorboard --logdir=runs # 運作tensorboard
在運作完tensorboard後,在該單元格下面就會出現tensorboard頁面:
之後就和之前一樣使用
writer
寫入資料即可,然後手動點選
按鈕即可,或者使用
按鈕開啟自動重新整理。
在Google Colab中不像本地那樣重新整理那麼快,即使手動點重新整理按鈕也不行,我自己測試下來,大概1分鐘才能真正更新一次資料。