0%

深度学习——torchvision.transforms的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np

# 准备数据
img_path = "D:\\python\\p1\\dataset\\malignant\\1 (8).BMP"
img = Image.open(img_path)

# ToTensor把PIL类型或者numpy转化为tensor类型
tensor_train = transforms.ToTensor()
tensor_img = tensor_train(img)
writer = SummaryWriter("log-transforms")
writer.add_image("malignant", tensor_img)
# writer.close()

# Normalize 归一化处理
print(tensor_img[0][0][0])
trans_norm = transforms.Normalize([0.5, 0.5, 0.5], [1, 1, 1])
img_norm = trans_norm(tensor_img)
print(img_norm[0][0][0])
writer.add_image("Normalize", img_norm)

# Resize调正图片大小比例等
trans_resize = transforms.Resize((500, 500))
img_resize = trans_resize(img)
print(img_resize)
img_resize = tensor_train(img_resize)
print(img_resize)
writer.add_image("Resize", img_resize)
writer.close()

# Compose组合变化,Compose的参数就是多个transforms操作,组合后的参数的PIL.img,然后返回transform指定的数据类型,其实就是遍历Compose中的操作
trans_compose = transforms.Compose([transforms.Resize([125, 125]), tensor_train])
img_compose = trans_compose(img)
writer.add_image("Compose", img_compose)
writer.close()