pytorch数据读取之transforms

torchvision.transforms:常用的图像预处理方法:

数据中心化。数据标准化:均值为0,标准差为1。缩放。裁剪。旋转。翻转。填充。噪声添加。灰度变换。线性变换。仿射变换。亮度、饱和度、对比度变换。

transforms运行机制如图:

pytorch数据读取之transforms_第1张图片

transforms.Normalize。功能:按channel对图像进行标准化(均值变为0,标准差变为1),output = (input-mean)/std

标准化可极大加速模型的收敛

transforms 图像增强

    对训练集进行变换,使训练集更加丰富,从而增加模型的泛化能力。(5年高考,3年模拟)

1、裁剪

transforms.CenterCrop(size)

transforms.RandomCrop(size,padding=None,pad_if_needed=False,fill=0,padding_mode='constant')

transforms.RandomResizedCrop(size,scale=(0.08,1.0),ratio=(3/4,4/3),interpolation)

transforms.FiveCrop(size)

transforms.TenCrop(size,vertical_flip=False)

2、翻转,旋转

transforms.RandomHorizontalFlip(p=0.5)

transforms.RandomVerticalFlip(p=0.5)

transforms.RandomRotation(degrees,resample=False,expand=False,center=None)

3、图像变换

transforms.Pad(padding,fill=0,padding_mode='constant')

transforms.ColorJitter(brightness=0,contrast=0,saturation=0,hue=0)

transforms.RandomGrayscale(num_output_channels,p=0.1)

transforms.Grayscale(num_output_channels)

transforms.RandomAffine(degrees,translate=None,scale=None,shear=None,resample=False,fillcolor=0)

transforms.RandomErasing(p=0.5,scale(0.02,0.33),ratio=(0.3,0.3),value=0,inplace=False)

transfoms.Lambda(lambda input: expression)

transforms.Resize

transforms.Totensor

transforms.Normalize

4、transforms的选择操作

transforms.RandomChoice([transforms1, transforms2, transforms3])

transforms.RandomApply([transforms1, transforms2, transforms3], p=0.5)

transforms.RandomOrder([transforms1, transforms2, transforms3])

详细参数可见:https://blog.csdn.net/u011995719/article/details/85107009

自定义transforms方法,注意1:仅接收一个参数,返回一个参数,注意2:上下游的输入输出。

椒盐噪声:又称为脉冲噪声,是一个随机出现的白点或者黑点,白点称为盐噪声,黑点称为椒噪声

信噪比:是衡量噪声的比例,在图像中为图像像素的占比,0,1之间)。

 

数据增强策略,(原则:让训练集与测试集更接近)

空间位置:平移

色彩:灰度图,色彩抖动

形状:仿射变换

上下文场景:遮挡,填充

 

 

 

 

 

 

你可能感兴趣的:(机器学习)