Pytorch用Tensorboard來觀察數據
上一章講數據的處理,這一章講數據處理之後呈現的結果,即你有可能看到Loss
的走向等,這樣方便我們調試代碼。
1.Tensorboard
有兩個常用的方法:
- 一個是
add_scalar()
顯:示曲線 - 一個是
add_image()
顯示圖像
首先安裝Tensorboard
在你的編譯環境(conda activate XXX
)中輸入命令
pip install tensorboard
1.使用add_scalar()輸入代碼
from torch.utils.tensorboard import SummaryWriter #調包 writer = SummaryWriter('logs') # 這裡你創建瞭一個logs的文件裝你的add_scalar生成的曲線, #其中writer.add_scalar()第一個量是曲線的名字, #第二個量是縱坐標scalar_value,第三個量是橫坐標global_step(也可以理解為損失值得步長) for i in range(100): writer.add_scalar("quadratic", i ** 2, i) writer.close()
打開這個Tensorboard文件
tensorboard --logdir=logs #1.這個logdir的文件名必須要與之前所創建的文件名一致,不然很容易報錯,No dashboards are active for the current data set. #2.這個tensorboard輸入的命令,必須是在logs文件的上一層文件中,不然也很容易報錯,No dashboards are active for the current data set.
結果現實:
2.使用add_image()輸入代碼
註意:add_image()
中函數一般有三個量:
第一個是圖像的名字,第二個是圖像(必須是tensor或者numpy.ndarray),第三個是步長(可理解為訓練或者測試階段到哪幅圖像瞭);
其中,圖像的shape
必須是CHW,但是有opencv
讀取的圖像shape
是HWC,
所以得使用dataformats
轉換以下將圖像的shape轉換為HWC
下面的代碼測試瞭兩張圖(一張是來自aligned
的圖像,一張是來自original
的圖像)用來模擬訓練或者測試階段程序運行到哪張圖
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') #此圖已經在我第一次測試add_image()用過瞭 writer.add_image("img", original_img, 2, dataformats='HWC')#此圖是我在第二個測試 writer.close()
實現結果:
tensorboard中出現瞭IMAGES,並且step1是aligned的圖,而step2是original的圖
到此這篇關於Pytorch用Tensorboard來觀察數據的文章就介紹到這瞭,更多相關Pytorch使用Tensorboard內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Pytorch中TensorBoard及torchsummary的使用詳解
- 教你如何在Pytorch中使用TensorBoard
- Pytorch中使用TensorBoard詳情
- 在Pytorch中簡單使用tensorboard
- Pytorch關於Dataset 的數據處理