什么是TensorboardX
Tensorboard 是 TensorFlow 的一個(gè)附加工具,可以記錄訓(xùn)練過程的數(shù)字、圖像等內(nèi)容,以方便研究人員觀察神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程??墒菍?duì)于 PyTorch 等其他神經(jīng)網(wǎng)絡(luò)訓(xùn)練框架并沒有功能像 Tensorboard 一樣全面的類似工具,一些已有的工具功能有限或使用起來比較困難 (tensorboard_logger, visdom等) 。TensorboardX 這個(gè)工具使得 TensorFlow 外的其他神經(jīng)網(wǎng)絡(luò)框架也可以使用到 Tensorboard 的便捷功能。TensorboardX 的 github倉庫在這里。
TensorboardX 的文檔相對(duì)詳細(xì),但大部分缺少相應(yīng)的示例。本文是對(duì)TensorboardX 各項(xiàng)功能的完整介紹,每項(xiàng)都包含了示例,給出了可視化效果,希望可以方便大家的使用。筆者水平有限,還請(qǐng)讀者們斧正,相關(guān)問題可以在留言區(qū)提出,我盡量解答。
TensorBoard是TensorFlow中強(qiáng)大的可視化工具
安裝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()
運(yùn)行完,會(huì)保存在當(dāng)前目錄的runs文件底下。
![](/d/20211017/c20a4befb40f6d1630910fbe1f745488.gif)
查看結(jié)果
# cd 到當(dāng)前的工作目錄下,如:
cd 19RNN\predrnn-pytorch-master\predrnn-pytorch-master
# 運(yùn)行 tensorboard
tensorboard --logdir "./"
瀏覽器中輸入查看的地址
http://127.0.0.1:6006/
![](/d/20211017/35a741fd69e3a44c4eeee132fa03b1ef.gif)
額外知識(shí)點(diǎn):
(1)writer.add_scalar()
功能:將標(biāo)量添加到 summary
參數(shù):
tag (string):數(shù)據(jù)標(biāo)識(shí)符
scalar_value (float or string/blobname):要保存的數(shù)值
global_step (int):全局步值
walltime (float):可選參數(shù),用于記錄發(fā)生的時(shí)間,默認(rèn)為 time.time()
(2)writer.add_scalars()
功能:添加多個(gè)標(biāo)量數(shù)據(jù)到 summary 中
參數(shù):
main_tag (string):tag 的父級(jí)名稱
tag_scalar_dict (dict):保存 tag 及相應(yīng)的值的鍵值對(duì)
global_step (int):全局步值
walltime (float) 可選參數(shù),可選參數(shù),用于記錄發(fā)生的時(shí)間,默認(rèn)為 time.time()
兩者區(qū)別
writer.add_scalar() 添加一個(gè)標(biāo)量到 summary
writer.add_scalars() 可以同時(shí)添加多個(gè)標(biāo)量到 summary 中,多個(gè)標(biāo)量需要使用鍵值對(duì)的形式輸入
兩者共同點(diǎn)
第一個(gè)參數(shù)可簡(jiǎn)單理解為保存到 tensorboard 日志文件中的標(biāo)量圖像的名稱
第二個(gè)參數(shù)可簡(jiǎn)單理解為圖像的 y 軸數(shù)據(jù)
第三個(gè)參數(shù)可簡(jiǎn)單理解為圖像的 x 軸數(shù)據(jù)
第四個(gè)參數(shù)都是可選參數(shù),用于記錄發(fā)生的時(shí)間,默認(rèn)為 time.time()
到此這篇關(guān)于教你如何在Pytorch中使用TensorBoard的文章就介紹到這了,更多相關(guān)Pytorch使用TensorBoard內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 在Pytorch中簡(jiǎn)單使用tensorboard
- Pytorch中TensorBoard及torchsummary的使用詳解
- pytorch使用tensorboardX進(jìn)行l(wèi)oss可視化實(shí)例