Bootstrap

pytroch函数介绍(一)---transform

transform函数介绍

学习pytroch中遇到了许多函数,为了以后方便复习,记录一下,如果想要进一步了解可以去看官方文档https://pytorch.org/vision/stable/transforms.html
有大佬写了中文版https://github.com/zergtant/pytorch-handbook

transform函数提供对图像的变换,包括尺寸裁剪(resize),归一化等.
pytroch中提供函数transform,只需要从torchision导入即可使用。 torchvision 工具库是 pytorch 框架下常用的图像处理包,可以用来生成图片和视频数据集(torchvision.datasets),做一些图像预处理(torchvision.transforms),导入预训练模型(torchvision.models),以及生成图和保存图像(torchvision.utils)

from torchvision import transforms

1.Compose()

功能作用:
将不同的transforms变换结合在一起,先进行第一个transform变换,后进行第二个transforms变换

transform1 = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor()]
)

2.ToTensor()

功能作用:
将图片转化为tensor张量

# ToTensor() 的使用
trans_totensor = transforms.ToTensor()      # 返回一个ToTensor 对象
img_tensor = trans_totensor(img)            # 将传入的图片转换成Tensor类型的图片并返回
writer.add_image("Tensor_img", img_tensor)

3. ToPILImage

功能作用:
Convert a tensor or an ndarray to PIL Image
调用方法:同上

4.Normalize

功能作用:
根据给定的均值和标准差归一化tensor图像
输入:mean: (mean[1],…,mean[n]) and std: (std[1],…,std[n]) for n
输出:output[channel] = (input[channel] - mean[channel]) / std[channel]

trans_norm = transforms.Normalize([0, 2, 1], [7, 6, 6])
img_norm = trans_norm(img_tensor)

5. Resize

功能作用:
调整图片大小

trans_resize = transforms.Resize((512, 512)) #创建Resize对象,输入参数
img_resize = trans_resize(img) #输入PIL image

6.RandomCrop()

功能作用:随机裁剪

# 6. RandomCrop() 随机裁剪   输入:PIL image  输出:PIL Image
trans_random = transforms.RandomCrop(200)
trans_compose_2 = transforms.Compose([trans_random, trans_totensor])
for i in range(10):
    img_crop = trans_compose_2(img)
    writer.add_image("trans_crop", img_crop, i)

参考资料
https://blog.csdn.net/qq_42806080/article/details/122662532

;