pytorch 数据处理模块

PyTorch 的数据处理模块是 torchvision.transform,只对 PIL.Image 或维度为 (H, W, C) 的图片数据进行数据预处理。由于 OpenCV 读入图片的数据维度是 (H, W, C),所以不能直接使用 torchvision.transform 处理 OpenCV 的图片数据。

1. class torchvision.transforms.Compose(transforms)
输入一个 transform 列表,将多个 transform 组合使用。

2. class torchvision.transforms.Scale(size, interpolation=2)
将输入的 PIL.Image 重新改变大小成给定的 size,其中 size 是最小边长。举一个例子,如果原图的 height > width,那么改变大小后的图片大小是 (size*height/width, size)。

3. class torchvision.transforms.CenterCrop(size)
将给定的 PIL.Image 进行中心切割,得到给定的 size,size 可以是 tuple (target_height, target_width)。size 也可以是一个 Integer,在这种情况下,切出来的图片形状是正方形。

4. class torchvision.transforms.RandomCrop(size, padding=0)
切割中心点的位置随机选取。size 可以是 tuple 也可以是 Integer。

5. class torchvision.transforms.RandomHorizontalFlip
随机水平翻转给定的 PIL.Image,概率为 0.5。即:一半的概率翻转,一半的概率不翻转。

6. class torchvision.transforms.RandomSizedCrop(size, interpolation=2)
先将给定的 PIL.Image 随机切割,然后再 resize 成给定的 size 大小。

7. class torchvision.transforms.Pad(padding, fill=0)
将给定的 PIL.Image 的所有边给定的 pad value 填充。
padding:要填充多少像素。
fill: 用什么值填充。

8. class torchvision.transforms.Normalize(mean, std)
给定均值:mean = (R, G, B),方差:std = (R, G, B),将会把 Tensor 归一化。
即:Normalized_image = (image - mean) / std。

9. class torchvision.transforms.ToTensor
把一个取值范围是 [0, 255] 的 PIL.Image 或者 shape 为 (H, W, C) 的 numpy.ndarray,转换为形状为 (C, H, W),取值范围是 [0, 1] 的 torch.FloatTensor。

10. class torchvision.transforms.ToPILImage
将 shape 为 (C, H, W) 的 Tensor 或者 shape 为 (H, W, C) 的 numpy.ndarray 转换成 PIL.Image,值不变。

扫描二维码关注公众号,回复: 5021138 查看本文章

11. class torchvision.transforms.Lambda(lambda)
通用变换,使用 lambda 作为转换器

猜你喜欢

转载自blog.csdn.net/weixin_43124857/article/details/86591582
今日推荐