輸入 輸出 作用
PIL Image,open()
tensor ToTensor()
warrays cv.imread()
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer = SummaryWriter('logs')
img = Image.open("data/train/ants_image/6743948_2b8c096dda.jpg") #圖片路徑
print(img)
#ToTensor的使用
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img) #括號里圖片格式為PIL,輸出格式為totensor格式
writer.add_image("ToTensor", img_tensor)
writer.close()
#Normalize的使用
print(img_tensor[0][0][0]) #圖片必須是tensor格式
trans_norm = transforms.Normalize([1,4,2],[5,1,3]) #方框里的數字是更改圖片值
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm,0) # 命名圖片,圖片名稱,步數
writer.close()
#Reslize(objecct)
print(img.size)
trans_resize = transforms.Resize((512,512)) #要求更改完成的圖片大小
img_resize = trans_resize(img) #更改圖片大小 圖片只能是PIL格式
img_resize = trans_totensor(img_resize) #圖片由PIL格式改為totensor格式
writer.add_image("Resize",img_resize,0)
print(img_resize)
writer.close()
#Compose - resize-2
trans_resize_2 = transforms.Resize(512) #更改圖片大小 圖片型別為PIL
trans_compose = transforms.Compose([trans_resize_2,trans_totensor])
#圖片型別由PIL轉換為totensor
# Compose()中的引數需要的是一個串列
python中,串列的表示形式為[資料1,資料2……]
在Compose中,資料需要的transforms型別
所以得到Compose([transforms引數1,transforms引數2……])
img_resize_2 = trans_compose(img) #括號里圖片為PIL格式 與trans-compose輸入一致
writer.add_image("Resize",img_resize_2,1)
writer.close()
#RandomCrop
trans_random = transforms.RandomCrop((100,120)) #裁剪大小 要小于原始圖片
trans_compose_2 = transforms.Compose([trans_random,trans_totensor])
for i in range(10):
img_crop = trans_compose_2(img)
writer.add_image("RandomCrop",img_crop,i) #在原圖片上隨機裁剪10個規定大小的圖片
writer.close()
只有totensor格式的圖片才能在tensorboard中打開
在terminal終端輸入
tensorboard --logdir=logs
tensorboard --logdir=logs --port=6007 #避免使用人數太多在另一個視窗打開
總結
多關注輸入和輸出型別
多看官方檔案
關注方法需要什么引數(輸入型別可在官方檔案里看,輸出型別print(圖片名稱)或
print(type(圖片名稱)或debug)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/332189.html
標籤:其他
下一篇:CV方向電子書推薦(持續更新)
