教你如何在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!
推薦閱讀:
- Pytorch中TensorBoard及torchsummary的使用詳解
- 在Pytorch中簡單使用tensorboard
- Pytorch中使用TensorBoard詳情
- Pytorch用Tensorboard來觀察數據
- PyTorch 可視化工具TensorBoard和Visdom