PyTorch_5_常见Transformers


from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

writer = SummaryWriter("logs")

img = Image.open("images/girls.png").convert('RGB')
print(img)

# ToTensor
trans_totensor = transforms.ToTensor();
img_tensor = trans_totensor(img)
writer.add_image("ToTensor", img_tensor)

# Normalize
# ``input[channel] = (input[channel] - mean[channel]) / std[channel]``
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)
print(img_norm[0][0][0])
writer.add_image("Normalize", img_norm)

trans_norm = transforms.Normalize([1, 3, 5], [2, 3, 1])
img_norm = trans_norm(img_tensor)
writer.add_image("Normalize_bad", img_norm)

# Resize
print(img.size)
trans_resize = transforms.Resize((512, 512))
# img PIL -> resize -> img_resize PIL
img_resize = trans_resize(img)
print(img_resize)
# image_resize PIL -> totensor -> image_resize_tensor
img_resize = trans_totensor(img_resize)
print(img_resize)
writer.add_image("Resize", img_resize, 0)

# Compose resie -2
trans_resize_2 = transforms.Resize(512)
# Compose相当于是一个方法的线性组合,列表里面放的是方法,前一个方法的输出会当成后一个方法的输入进行,是减少代码的一种方式
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize", img_resize_2, 1)

# RandomCrop
trans_random = transforms.RandomCrop((600, 800))
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)

writer.close()

Author: Ruimin Huang
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Ruimin Huang !
  TOC