教你如何在Pytorch中使用TensorBoard

什麼是TensorboardX

Tensorboard 是 TensorFlow 的一個附加工具,可以記錄訓練過程的數字、圖像等內容,以方便研究人員觀察神經網絡訓練過程。可是對於 PyTorch 等其他神經網絡訓練框架並沒有功能像 Tensorboard 一樣全面的類似工具,一些已有的工具功能有限或使用起來比較困難 (tensorboard_logger, visdom等) 。TensorboardX 這個工具使得 TensorFlow 外的其他神經網絡框架也可以使用到 Tensorboard 的便捷功能。TensorboardX 的 github倉庫在這裡。

TensorboardX 的文檔相對詳細,但大部分缺少相應的示例。本文是對TensorboardX 各項功能的完整介紹,每項都包含瞭示例,給出瞭可視化效果,希望可以方便大傢的使用。筆者水平有限,還請讀者們斧正,相關問題可以在留言區提出,我盡量解答。

TensorBoard是TensorFlow中強大的可視化工具

安裝TensorBoard

pip install tensorboard

pip install future

代碼演示

import numpy as np
from torch.utils.tensorboard import SummaryWriter
 
writer = SummaryWriter(comment='test_tensorboard')
 
for x in range(100):
 
    writer.add_scalar('y=2x', x * 2, x)
    writer.add_scalar('y=pow(2, x)',  2 ** x, x)
    
    writer.add_scalars('data/scalar_group', {"xsinx": x * np.sin(x),
                                             "xcosx": x * np.cos(x),
                                             "arctanx": np.arctan(x)}, x)
writer.close()

運行完,會保存在當前目錄的runs文件底下。

查看結果

# cd 到當前的工作目錄下,如:
cd 19RNN\predrnn-pytorch-master\predrnn-pytorch-master
 
# 運行 tensorboard
tensorboard --logdir "./"

瀏覽器中輸入查看的地址

http://127.0.0.1:6006/

額外知識點:

 (1)writer.add_scalar()
功能:將標量添加到 summary
參數:
tag (string):數據標識符
scalar_value (float or string/blobname):要保存的數值
global_step (int):全局步值
walltime (float):可選參數,用於記錄發生的時間,默認為 time.time()

(2)writer.add_scalars()
功能:添加多個標量數據到 summary 中
參數:
main_tag (string):tag 的父級名稱
tag_scalar_dict (dict):保存 tag 及相應的值的鍵值對
global_step (int):全局步值
walltime (float) 可選參數,可選參數,用於記錄發生的時間,默認為 time.time()
兩者區別
writer.add_scalar() 添加一個標量到 summary
writer.add_scalars() 可以同時添加多個標量到 summary 中,多個標量需要使用鍵值對的形式輸入
兩者共同點
第一個參數可簡單理解為保存到 tensorboard 日志文件中的標量圖像的名稱
第二個參數可簡單理解為圖像的 y 軸數據
第三個參數可簡單理解為圖像的 x 軸數據
第四個參數都是可選參數,用於記錄發生的時間,默認為 time.time()

到此這篇關於教你如何在Pytorch中使用TensorBoard的文章就介紹到這瞭,更多相關Pytorch使用TensorBoard內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: