图像预处理Transforms与normalize
文章目录
1. transforms运行机制
torchvision工具包中包含三个主要模块,今天主要学习transforms
- torchvision.transforms:常用的数据预处理方法,提升泛化能力
- 包括:数据中心化、数据标准化、缩放、裁剪、旋转、翻转、填充、噪声添加、灰度变换、线性变换、仿射变换、亮度、饱和度及对比度变换等
2. 数据标准化——transforms.normalize
- transforms.Normalize()
- 功能:逐channel的对图像进行标准化(均值变为0,标准差变为1),可以加快模型的收敛
- output = (input - mean) / std
- mean:各通道的均值
- std:各通道的标准差
- inplace:是否原地操作
3. transforms数据增强
3.1 数据增强
- 数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力。
3.2 transforms——裁剪
-
transforms.CenterCrop
- 功能:从图像中心裁剪图片
- size:所需裁剪图片尺寸
-
transforms.RandomCrop
- 功能:从图片中随机裁剪出尺寸为size的图片
- size:所需裁剪图片尺寸
- padding:设置填充大小。当为a时,上下左右均填充a个像素,当为(a,b)时,上下填充b个像素,左右填充a个像素。当为(a,b,c,d)时,左上右下分别填充abcd
- pad_if_need:若图像小于设定size,则填充
- padding_mode:填充模式:(1)constant像素值由fill设定(默认模式);(2)edge像素值由图像边缘像素决定(3)reflect镜像填充,最后一个像素不镜像,eg,[1,2,3,4]->[3,2,1,2,3,4,3,2];(4)symmetric镜像填充,最后一个像素镜像,eg,[1,2,3,4]->[2,1,1,2,3,4,4,3]
- fill:constant时,设置填充的像素值
-
RandomResizedCrop
- 功能:随机大小、长宽比裁剪图片
- size:所需裁剪图片尺寸
- scale:随机裁剪面积比例,默认(0.08,1)
- ratio:随机长宽比,默认(3/4,4/3)
- interpolation:插值方法,PIL.Image.NEAREST最近邻,