教你如何在Pytorch中使用TensorBoard
什么是TensorboardX
Tensorboard 是 TensorFlow 的一個(gè)附加工具,可以記錄訓(xùn)練過(guò)程的數(shù)字、圖像等內(nèi)容,以方便研究人員觀察神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程??墒菍?duì)于 PyTorch 等其他神經(jīng)網(wǎng)絡(luò)訓(xùn)練框架并沒(méi)有功能像 Tensorboard 一樣全面的類似工具,一些已有的工具功能有限或使用起來(lái)比較困難 (tensorboard_logger, visdom等) 。TensorboardX 這個(gè)工具使得 TensorFlow 外的其他神經(jīng)網(wǎng)絡(luò)框架也可以使用到 Tensorboard 的便捷功能。TensorboardX 的 github倉(cāng)庫(kù)在這里。
TensorboardX 的文檔相對(duì)詳細(xì),但大部分缺少相應(yīng)的示例。本文是對(duì)TensorboardX 各項(xiàng)功能的完整介紹,每項(xiàng)都包含了示例,給出了可視化效果,希望可以方便大家的使用。筆者水平有限,還請(qǐng)讀者們斧正,相關(guān)問(wè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文件底下。

查看結(jié)果
# cd 到當(dāng)前的工作目錄下,如: cd 19RNN\predrnn-pytorch-master\predrnn-pytorch-master # 運(yùn)行 tensorboard tensorboard --logdir "./"
瀏覽器中輸入查看的地址

額外知識(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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用 Python 列出串口的實(shí)現(xiàn)方法
有時(shí)在編程時(shí),我們需要獲取有關(guān)系統(tǒng)中可用通信端口的信息, 我們將討論如何使用 Python 來(lái)做到這一點(diǎn),將討論使用串口或 com 端口的通信, 我們將深入探索 Python 包,以幫助我們獲得系統(tǒng)的可用通信端口,感興趣的朋友一起看看吧2023-08-08
python中循環(huán)語(yǔ)句while用法實(shí)例
這篇文章主要介紹了python中循環(huán)語(yǔ)句while用法,實(shí)例分析了while語(yǔ)句的使用方法,需要的朋友可以參考下2015-05-05
python中l(wèi)xml.etree 和 ElementTree 的區(qū)別解析
lxml.etree 提供了更多的功能,例如 XPath、XSLT、Relax NG、 和 XML 模式支持,etree 對(duì) Python unicode 字符串的想法與 ElementTree 不同,本文給大家介紹python中l(wèi)xml.etree 和 ElementTree 的區(qū)別,感興趣的朋友一起看看吧2024-01-01
bluepy 一款python封裝的BLE利器簡(jiǎn)單介紹
這篇文章主要介紹了bluepy 一款python封裝的BLE利器簡(jiǎn)單介紹,bluepy 是github上一個(gè)很好的藍(lán)牙開(kāi)源項(xiàng)目, 其主要功能是用python實(shí)現(xiàn)linux上BLE的接口。,需要的朋友可以參考下2019-06-06
Python使用DeepSeek進(jìn)行聯(lián)網(wǎng)搜索功能詳解
Python作為一種非常流行的編程語(yǔ)言,結(jié)合DeepSeek這一高性能的深度學(xué)習(xí)工具包,可以方便地處理各種深度學(xué)習(xí)任務(wù),本文將介紹一下如何使用Python和DeepSeek進(jìn)行聯(lián)網(wǎng)搜索,感興趣是可以了解下2025-03-03
Python可視化學(xué)習(xí)之seaborn繪制矩陣圖詳解
矩陣圖即用一張圖繪制多個(gè)變量之間的關(guān)系,數(shù)據(jù)挖掘中常用于初期數(shù)據(jù)探索。本文介紹python中seaborn.pairplot和seaborn.PairGrid繪制矩陣圖,需要的可以參考一下2022-02-02
Python報(bào)錯(cuò)TypeError: ‘dict‘ object is not&
在Python開(kāi)發(fā)的旅程中,報(bào)錯(cuò)信息就像是一個(gè)個(gè)路障,阻礙著我們前進(jìn)的步伐,而“TypeError: ‘dict’ object is not iterable”這個(gè)報(bào)錯(cuò),常常讓開(kāi)發(fā)者們陷入困惑,那么,這個(gè)報(bào)錯(cuò)究竟是怎么產(chǎn)生的呢?又該如何有效地解決它呢?讓我們一起深入探討,找到解決問(wèn)題的方法2024-10-10

