上一章講資料的處理,這一章講資料處理之后呈現的結果,即你有可能看到Loss的走向等,這樣方便我們除錯代碼,
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之Dataset
下一章 初識Pytorch使用transforms
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382783.html
標籤:AI
