P12.常見的transforms(二)
12.1Resize使用
1.Resize使用1_輸入的size為sequence
【注:“忽略大小寫,進行提示匹配”的設置:一般情況下,你需要輸入R,才能提示出Resize;我們想設置,即便你輸入的是r,也能提示出Resize,也就是忽略了大小寫進行匹配提示】
步驟如下:

(1)對Resize()的官方介紹

up主的pycharm對input類型的要求:PIL類型

我的pycharm對input類型沒有要求誒:

(2)代碼如下:
點擊查看代碼
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
img = Image.open("images/myphoto.png")
print(img)
writer = SummaryWriter("logs1")
#ToTensor
#trans_tensor是transforms.ToTensor這個類的實例化,trans_tensor是一個對象
trans_tensor = transforms.ToTensor()
img_tensor = trans_tensor(img)
writer.add_image("ToTensor",img_tensor)
# writer.close()
# #Normalize
# print(img_tensor[0][0][0])
#
# trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
# img_norm = trans_norm(img_tensor)
# writer.add_image("ToNormalize",img_norm)
#
# print(img_norm[0][0][0])
# writer.close()
#Resize -1 輸入一個sequence
print(img.size)
trans_resize = transforms.Resize((512,512))
#img_resize = trans_resize(img) 【img:PIL -> resize -> img_resize:PIL】
#img_resize = trans_tensor(img_resize) 【img_resize:PIL-> ToTensor ->img_resize:tensor(會覆蓋掉原來的img_resize)】
img_resize = trans_resize(img_tensor) #【img:tensor -> resize img_resize:tensor】
writer.add_image("Resize",img_resize)
writer.close()
(3)運行結果
①input類型為PIL類型

②input類型為tensor類型

2.Resize_2(size為整數int)使用
①size為sequence例如(h,w)時,輸出的size就是該尺寸;②size為int即一個數,輸出的圖片size就等比例縮放
點擊查看代碼
#resize -2 輸入一個int
trans_resize_2 = transforms.Resize(512)
12.2Compose()使用
1.Compose()用法
Compose()中的參數需要是一個列表
Python中,列表的表示形式為[數據1,數據2,.]
在Compose中,數據需要是transforms類型
所以得到,Compose([transforms參數1,transforms參數2...])
2.代碼如下:
點擊查看代碼
#Compose - resize -2 輸入一個int
trans_resize_2 = transforms.Resize(512)
#compose([a1,a2]) 前面的輸出即a1的類型須匹配后面的輸入即a2 img:PIL -> Resize:PIL -> ToTensor:tensor(PIL->tensor)
trans_compose = transforms.Compose([trans_resize_2,trans_tensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize_2",img_resize_2)
writer.close()
3.運行

12.3RandomCrop()使用
1.代碼
點擊查看代碼
#RandomCrop
trans_rancrop = transforms.RandomCrop(512)
trans_compose2 = transforms.Compose([trans_rancrop,trans_tensor])#先對其隨機裁剪再轉化為tensor數據類型
for i in range(10):
img_rancrop = trans_compose2(img)
writer.add_image("RandomCrop",img_rancrop,i)
writer.close()
2.運行結果


12.4總結使用方法
1.up主總結
(1)關注輸入和輸出類型
(2)關注官方文檔
(3)關注方法需要什么參數
(4)不知道返回值類型的時候可以試錯或者搜索(print,print(type0),debug)

2.舉例
任意打開一個類和函數
eg.Padding需要設置,其他參數如fill,padding_mode可以默認不設置:


浙公網安備 33010602011771號