Pytorch之数据增强1

Transforms on PIL Image

torchvision.transforms


# 亮度,对比,饱和,色调
torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)

torchvision.transforms.Grayscale(num_output_channels=1)
torchvision.transforms.RandomGrayscale(p=0.1)

torchvision.transforms.RandomVerticalFlip(p=0.5)
torchvision.transforms.RandomHorizontalFlip(p=0.5)

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

#仿射变换
torchvision.transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0)

#pytorch官方推荐用resize
torchvision.transforms.Scale(*args, **kwargs)
torchvision.transforms.Resize(size, interpolation=2)
torchvision.transforms.CenterCrop(size)
# 一般用于测试,如果crop的大小大于原图会报错,FiveCrop包括上下左右四个角落和中间部分
torchvision.transforms.FiveCrop(size)
# 上下左右四个角落和中间部分,如果vertical_flip=True垂直镜像后进行FiveCrop,否则水平镜像FiveCrop
torchvision.transforms.TenCrop(size, vertical_flip=False)
torchvision.transforms.RandomCrop(size, padding=None, pad_if_needed=False, fill=0, padding_mode='constant')
# #pytorch官方推荐用RandomResizedCrop
torchvision.transforms.RandomSizedCrop(*args, **kwargs)
torchvision.transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=2)
#########Attenation: if you use five or ten crop, you  should do:##########
input, target = batch # input is a 5d tensor, target is 2d
bs, ncrops, c, h, w = input.size()
result = model(input.view(-1, c, h, w)) # fuse batch size and ncrops
result_avg = result.view(bs, ncrops, -1).mean(1) # avg over crops
torchvision.transforms.Pad(padding, fill=0, padding_mode='constant')

torchvision.transforms.RandomApply(transforms, p=0.5)
torchvision.transforms.RandomChoice(transforms)
torchvision.transforms.RandomOrder(transforms)

猜你喜欢

转载自blog.csdn.net/weixin_42287851/article/details/89517537