pytorch下tensorboard的使用程序示例
我們都知道tensorflow框架可以使用tensorboard這一高級(jí)的可視化的工具,為了使用tensorboard這一套完美的可視化工具,未免可以將其應(yīng)用到Pytorch中,用于Pytorch的可視化。這里特別感謝Github上的解決方案: https://github.com/lanpa/tensorboardX。
一、tensorboard程序?qū)嵗?/h2>
1.代碼
from torch.utils.tensorboard import SummaryWriter # 用于將數(shù)據(jù)寫(xiě)入tensorboard import csv # 用于從本地csv中讀取數(shù)據(jù) '''從csv讀取數(shù)據(jù),用于后續(xù)顯示在tensorboard中''' fileAddr = 'models/211016_101208/reward.csv' # 待讀取的文件地址 file = open(fileAddr, 'r') # 打開(kāi)文件 data = csv.reader(file) # 從文件中讀取數(shù)據(jù),但此時(shí)data是{reader}格式 next(data) # 忽略數(shù)據(jù)的第一行,這是csv的表頭。 '''csv數(shù)據(jù)讀取完畢''' '''將data數(shù)據(jù)寫(xiě)入tensorboard''' tensorboard_logs_addr = "logs_tensorboard/211021" # 設(shè)定tensorboard文件存放的地址 writer = SummaryWriter(tensorboard_logs_addr) for index, data1 in enumerate(data): # 開(kāi)始寫(xiě)入文件。 # 一個(gè)圖中寫(xiě)入多組數(shù)據(jù),共用y軸 writer.add_scalars('adv_data/Rewards Per Episodes', {'agent0':float(data1[0]), 'agent1':float(data1[1]), 'agent2':float(data1[2]),}, index) # 一個(gè)圖中寫(xiě)入一組數(shù)據(jù) writer.add_scalar('adv_data/step number per episode', int(data1[4]), index) # 一個(gè)圖中寫(xiě)入一組數(shù)據(jù) writer.add_scalar('gda_data/Rewards per episode', float(data1[3]), index) writer.add_scalar('gda_data/step number per episode', int(data1[4]), index) writer.close() # 完成后關(guān)閉
運(yùn)行以上代碼,便會(huì)在文件夾logs_tensorboard/211021中生成tensorboard數(shù)據(jù)。
2.在命令提示符中操作
# 打開(kāi)命令提示符后默認(rèn)在c盤(pán),固先轉(zhuǎn)換到d盤(pán)
C:\Users\wf>d:
# 進(jìn)入程序所在文件夾
D:\>cd D:\04MADDPG\40_MADDPG_torch-master -UAV_FixedSpeed
# 打開(kāi)tensorboard的代碼
D:\04MADDPG\40_MADDPG_torch-master -UAV_FixedSpeed>tensorboard --logdir=logs_tensorboard/211021
完
說(shuō)明:
tensorboard --logdir=logs_tensorboard/211021
tensorboard --logdir= 是不可更改的;
logs_tensorboard/211021 是tensorboard文件存放的地址;logs_tensorboard文件夾的上一層就是程序所在文件夾;
3.在瀏覽器中打開(kāi)網(wǎng)址
http://localhost:6006/
4.效果
二、writer.add_scalar()與writer.add_scalars()參數(shù)說(shuō)明
writer.add_scalar() 一副圖中只有一組數(shù)據(jù)
writer.add_scalars() 一副圖中有多組數(shù)據(jù),但共用x軸
1.概述
將數(shù)據(jù)寫(xiě)入tensorboard只有以下代碼:
from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter("tensorboard文件存放地址") # 將數(shù)據(jù)寫(xiě)入tensorboard文件,規(guī)定寫(xiě)入的形式 writer.add_scalar() 或 writer.add_scalars() writer.close()
2.參數(shù)說(shuō)明
writer.add_scalar('TAG', Y-DATA, X-DATA) writer.add_scalars('TAG', {'Line1':Line1-Y-DATA, 'Line2':Line2-Y-DATA, 'Line3':Line3-Y-DATA, ... ... ,}, X-DATA)
其中:
- 運(yùn)行一次writer.add_scalar()或writer.add_scalar()生成一張圖像;
- 如果后面運(yùn)行的writer.add_scalar()的標(biāo)簽和前面的相同,會(huì)覆蓋掉舊的圖像;
參數(shù)說(shuō)明:
TAG 是當(dāng)前繪制圖像的分類標(biāo)簽,可以設(shè)置2級(jí)標(biāo)簽;如A1/B1,A1/C1,A2/B2;
當(dāng)兩張圖像的第一級(jí)標(biāo)簽相同時(shí),兩張圖象會(huì)放在一行;
當(dāng)兩張圖像的第一級(jí)標(biāo)簽不同時(shí),兩張圖象會(huì)放在不同的組,即兩張圖像上下放;
Y-DATA 是圖像中Y軸的數(shù)據(jù)
Line1-Y-DATA 是圖像中Line1的Y軸數(shù)據(jù)
Line2-Y-DATA 是圖像中Line2的Y軸數(shù)據(jù)
Line3-Y-DATA 是圖像中Line3的Y軸數(shù)據(jù)
X-DATA 是圖像中X軸的數(shù)據(jù)
Line1、Line2、Line3是同一張圖像中,幾個(gè)曲線的名稱,他們共用X軸
3.writer.add_scalar()效果
4.writer.add_scalars()效果
到此這篇關(guān)于pytorch下tensorboard的使用的文章就介紹到這了,更多相關(guān)pytorch tensorboard使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用tornado實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng)
這篇文章主要為大家詳細(xì)介紹了python使用tornado實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Python使用內(nèi)置函數(shù)setattr設(shè)置對(duì)象的屬性值
這篇文章主要介紹了Python使用內(nèi)置函數(shù)setattr設(shè)置對(duì)象的屬性值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10Python通過(guò)tkinter實(shí)現(xiàn)百度搜索的示例代碼
這篇文章主要介紹了Python通過(guò)tkinter實(shí)現(xiàn)百度搜索的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python unichr函數(shù)知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于python unichr函數(shù)的知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2020-12-12Pandas檢查dataFrame中的NaN實(shí)現(xiàn)
本文主要介紹了Pandas檢查dataFrame中的NaN實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01tkinter如何實(shí)現(xiàn)打開(kāi)文件對(duì)話框并獲取文件絕對(duì)路徑
這篇文章主要介紹了tkinter實(shí)現(xiàn)打開(kāi)文件對(duì)話框并獲取文件絕對(duì)路徑問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01基于python實(shí)現(xiàn)監(jiān)聽(tīng)Rabbitmq系統(tǒng)日志代碼示例
這篇文章主要介紹了基于python實(shí)現(xiàn)監(jiān)聽(tīng)Rabbitmq系統(tǒng)日志代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Python打包exe時(shí)各種異常處理方案總結(jié)
今天教大家用Python打包exe時(shí)各種異常處理的方案總結(jié),下文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助喲,需要的朋友可以參考下2021-05-05python數(shù)據(jù)預(yù)處理 :數(shù)據(jù)抽樣解析
這篇文章主要介紹了python數(shù)據(jù)預(yù)處理 :數(shù)據(jù)抽樣解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02