Pytorch:使用Tensorboard記錄訓練狀態

orion發表於2022-11-26

我們知道TensorBoard是Tensorflow中的一個強大的視覺化工具,它可以讓我們非常方便地記錄訓練loss波動情況。如果我們是其它深度學習框架使用者(如Pytorch),而想使用TensorBoard工具,可以安裝TensorBoard的封裝版本TensorBoardX:

pip install tensorboardx

具體使用方法如下:

from tensorboardX import SummaryWriter
writer = SummaryWriter('tensorboard/')

x = range(100)
for i in x:
    writer.add_scalar('y=2x', i * 2, i,)
    writer.add_scalar('y=x^2', i ** 2, i,)
writer.close()

然後再再當前路徑下會生成名稱為tensorboard資料夾及對應的記錄檔案,我們再使用命令 tensorboard --logdir tensorboard,可以看到對應輸出:

(base) ➜  Learn-Pytorch tensorboard --logdir tensorboard

NOTE: Using experimental fast data loading logic. To disable, pass
    "--load_fast=false" and report issues on GitHub. More details:
    https://github.com/tensorflow/tensorboard/issues/4784

I1126 18:06:12.417282 6209499136 plugin.py:429] Monitor runs begin
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.9.0 at http://localhost:6006/ (Press CTRL+C to quit)

此時只需要按照提醒開啟http://localhost:6006/路徑即可檢視資料視覺化情況,如下所示:
Pytorch:使用Tensorboard記錄訓練狀態

如果我們想將圖片儲存為向量圖或者匯出csv/json檔案,可以點選右邊的Show data download links選項,即可出現對應的匯出選項:

Pytorch:使用Tensorboard記錄訓練狀態

最後,需要提到的是,因為Tensorboard太常用了,所以在目前最新的Pytorch版本中已經直接整合進來了。所以,現在使用Tensorboard只需要直接匯入torch.utils.tensorboard即可:

from torch.utils.tensorboard import SummaryWriter

x = range(100)
for i in x:
    writer.add_scalar('y=2x', i * 2, i,)
    writer.add_scalar('y=x^2', i ** 2, i,)
writer.close()

相關文章