我們都知道tensorflow框架可以使用tensorboard這一高級的可視化的工具,為了使用tensorboard這一套完美的可視化工具,未免可以將其應用到Pytorch中,用于Pytorch的可視化。這里特別感謝Github上的解決方案:https://github.com/lanpa/tensorboardX。
一、tensorboard程序實例:
1.代碼
from torch.utils.tensorboard import SummaryWriter # 用于將數據寫入tensorboard import csv # 用于從本地csv中讀取數據 '''從csv讀取數據,用于后續顯示在tensorboard中''' fileAddr = 'models/211016_101208/reward.csv' # 待讀取的文件地址 file = open(fileAddr, 'r') # 打開文件 data = csv.reader(file) # 從文件中讀取數據,但此時data是{reader}格式 next(data) # 忽略數據的第一行,這是csv的表頭。 '''csv數據讀取完畢''' '''將data數據寫入tensorboard''' tensorboard_logs_addr = "logs_tensorboard/211021" # 設定tensorboard文件存放的地址 writer = SummaryWriter(tensorboard_logs_addr) for index, data1 in enumerate(data): # 開始寫入文件。 # 一個圖中寫入多組數據,共用y軸 writer.add_scalars('adv_data/Rewards Per Episodes', {'agent0':float(data1[0]), 'agent1':float(data1[1]), 'agent2':float(data1[2]),}, index) # 一個圖中寫入一組數據 writer.add_scalar('adv_data/step number per episode', int(data1[4]), index) # 一個圖中寫入一組數據 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() # 完成后關閉
運行以上代碼,便會在文件夾logs_tensorboard/211021中生成tensorboard數據。
2.在命令提示符中操作
# 打開命令提示符后默認在c盤,固先轉換到d盤
C:\Users\wf>d:
# 進入程序所在文件夾
D:\>cd D:\04MADDPG\40_MADDPG_torch-master -UAV_FixedSpeed
# 打開tensorboard的代碼
D:\04MADDPG\40_MADDPG_torch-master -UAV_FixedSpeed>tensorboard --logdir=logs_tensorboard/211021
完
說明:
tensorboard --logdir=logs_tensorboard/211021
tensorboard --logdir= 是不可更改的;
logs_tensorboard/211021 是tensorboard文件存放的地址;logs_tensorboard文件夾的上一層就是程序所在文件夾;
3.在瀏覽器中打開網址
http://localhost:6006/
4.效果
二、writer.add_scalar()與writer.add_scalars()參數說明
writer.add_scalar() 一副圖中只有一組數據
writer.add_scalars() 一副圖中有多組數據,但共用x軸
1.概述
將數據寫入tensorboard只有以下代碼:
from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter("tensorboard文件存放地址") # 將數據寫入tensorboard文件,規定寫入的形式 writer.add_scalar() 或 writer.add_scalars() writer.close()
2.參數說明
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)
其中:
- 運行一次writer.add_scalar()或writer.add_scalar()生成一張圖像;
- 如果后面運行的writer.add_scalar()的標簽和前面的相同,會覆蓋掉舊的圖像;
參數說明:
TAG 是當前繪制圖像的分類標簽,可以設置2級標簽;如A1/B1,A1/C1,A2/B2;
當兩張圖像的第一級標簽相同時,兩張圖象會放在一行;
當兩張圖像的第一級標簽不同時,兩張圖象會放在不同的組,即兩張圖像上下放;
Y-DATA 是圖像中Y軸的數據
Line1-Y-DATA 是圖像中Line1的Y軸數據
Line2-Y-DATA 是圖像中Line2的Y軸數據
Line3-Y-DATA 是圖像中Line3的Y軸數據
X-DATA 是圖像中X軸的數據
Line1、Line2、Line3是同一張圖像中,幾個曲線的名稱,他們共用X軸
3.writer.add_scalar()效果
4.writer.add_scalars()效果
到此這篇關于pytorch下tensorboard的使用的文章就介紹到這了,更多相關pytorch tensorboard使用內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/wf6892/article/details/120893425