pytorch篇数据增强
torchvision.transforms,举例如下:
import torchvision.transforms as transforms
data_transforms = transforms.Compose([
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
transforms.Compose(transforms) 方法是将多种变换组合在一起。
函数
torchvision.transforms.Normalize(mean, std)
:用给定的均值和标准差分别对每个通道的数据进行正则化torchvision.transforms.ToTensor
:把一个取值范围是[0,255]的PIL.Image或者shape为(H,W,C)的numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1.0]的torch.FloadTensortorchvision.transforms.ToPILImage
:将shape为(C,H,W)的Tensor或shape为(H,W,C)的numpy.ndarray转换成PIL.Image,值不变。torchvision.transforms.CenterCrop(size)
:将给定的PIL.Image进行中心切割,得到给定的size,size可以是tuple,(target_height, target_width)。size也可以是一个Integer,在这种情况下,切出来的图片的形状是正方形。torchvision.transforms.RandomCrop(size, padding=0)
:切割中心点的位置随机选取。size可以是tuple也可以是Integer。torchvision.transforms.RandomHorizontalFlip
:随机水平翻转给定的PIL.Image,概率为0.5。即:一半的概率翻转,一半的概率不翻转。torchvision.transforms.RandomVerticalFlip(p=0.5)
:按照概率p对PIL图片进行垂直翻转torchvision.transforms.RandomRotation(degrees, resample=False, expand=False, center=None, fill=None)
:按照degree随机旋转一定角度,加入degree是10,就是表示在(-10,10)之间随机旋转,如果是(30,60),就是30度到60度随机旋转;torchvision.transforms.RandomSizedCrop(size, interpolation=2)
:先将给定的PIL.Image随机切,然后再resize成给定的size大小。torchvision.transforms.Pad(padding, fill=0)
:将给定的PIL.Image的所有边用给定的pad value填充。 padding:要填充多少像素 fill:用什么值填充torchvision.transforms.Pad(brightness=0, contrast=0, saturation=0, hue=0)
:改变图片的属性,brightness亮度、contrast对比度、saturation饱和度、hue色调
其他参考