Pytorch用Tensorboard來觀察數(shù)據(jù)
上一章講數(shù)據(jù)的處理,這一章講數(shù)據(jù)處理之后呈現(xiàn)的結(jié)果,即你有可能看到Loss的走向等,這樣方便我們調(diào)試代碼。
1.Tensorboard
有兩個常用的方法:
- 一個是
add_scalar()顯:示曲線 - 一個是
add_image()顯示圖像
首先安裝Tensorboard
在你的編譯環(huán)境(conda activate XXX)中輸入命令
pip install tensorboard
1.使用add_scalar()輸入代碼
from torch.utils.tensorboard import SummaryWriter #調(diào)包
writer = SummaryWriter('logs') # 這里你創(chuàng)建了一個logs的文件裝你的add_scalar生成的曲線,
#其中writer.add_scalar()第一個量是曲線的名字,
#第二個量是縱坐標(biāo)scalar_value,第三個量是橫坐標(biāo)global_step(也可以理解為損失值得步長)
for i in range(100):
writer.add_scalar("quadratic", i ** 2, i)
writer.close()
打開這個Tensorboard文件
tensorboard --logdir=logs #1.這個logdir的文件名必須要與之前所創(chuàng)建的文件名一致,不然很容易報錯,No dashboards are active for the current data set. #2.這個tensorboard輸入的命令,必須是在logs文件的上一層文件中,不然也很容易報錯,No dashboards are active for the current data set.
結(jié)果現(xiàn)實:

2.使用add_image()輸入代碼
注意:add_image()中函數(shù)一般有三個量:
第一個是圖像的名字,第二個是圖像(必須是tensor或者numpy.ndarray),第三個是步長(可理解為訓(xùn)練或者測試階段到哪幅圖像了);
其中,圖像的shape必須是CHW,但是有opencv讀取的圖像shape是HWC,
所以得使用dataformats轉(zhuǎn)換以下將圖像的shape轉(zhuǎn)換為HWC
下面的代碼測試了兩張圖(一張是來自aligned的圖像,一張是來自original的圖像)用來模擬訓(xùn)練或者測試階段程序運行到哪張圖
from torch.utils.tensorboard import SummaryWriter
import cv2
writer = SummaryWriter('logs')
aligned_img_path = "D:\\data\\basic\\Image\\aligned\\test_0001_aligned.jpg"
original_img_path = "D:\\data\\basic\\Image\\original\\test_0001.jpg"
aligned_img = cv2.imread(aligned_img_path)
original_img = cv2.imread(original_img_path)
print(type(aligned_img)) # numpy
print(aligned_img.shape)
# writer.add_image("img", aligned_img, 1, dataformats='HWC') #此圖已經(jīng)在我第一次測試add_image()用過了
writer.add_image("img", original_img, 2, dataformats='HWC')#此圖是我在第二個測試
writer.close()
實現(xiàn)結(jié)果:
tensorboard中出現(xiàn)了IMAGES,并且step1是aligned的圖,而step2是original的圖


到此這篇關(guān)于Pytorch用Tensorboard來觀察數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Pytorch使用Tensorboard內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)基于二叉樹存儲結(jié)構(gòu)的堆排序算法示例
這篇文章主要介紹了Python實現(xiàn)基于二叉樹存儲結(jié)構(gòu)的堆排序算法,結(jié)合實例形式分析了Python二叉樹的定義、遍歷及堆排序算法相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-12-12
python圖片驗證碼識別最新模塊muggle_ocr的示例代碼
這篇文章主要介紹了python圖片驗證碼識別最新模塊muggle_ocr的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Python中字符串格式化str.format的詳細(xì)介紹
python從2.6開始支持format,新的更加容易讀懂的字符串格式化方法,下面這篇文章主要介紹了Python中字符串格式化str.format的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
詳解python內(nèi)置常用高階函數(shù)(列出了5個常用的)
這篇文章主要介紹了python內(nèi)置常用高階函數(shù)(列出了5個常用的),通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
幾行代碼讓 Python 函數(shù)執(zhí)行快 30 倍
Python 編程語言,與其他流行編程語言相比主要缺點是它的動態(tài)特性和多功能屬性拖慢了速度表現(xiàn)。Python 代碼是在運行時被解釋的,而不是在編譯時被編譯為原生代碼。在本文中,我們將討論如何用多處理模塊并行執(zhí)行自定義 Python 函數(shù),并進(jìn)一步對比運行時間指標(biāo)。2021-10-10

