变换是常见的图像变换,其可以适应连接在一起的ComposeComposeCompose,
此外,还有torchvision.transforms.functionaltorchvision.transforms.functionaltorchvision.transforms.functional模块,功能转换可以对转换进行细粒度控制,如果您必须构建更复杂的转换管道(例如,在分段任务情况下),这将非常有用类。
torchvision.transforms.Compose(transforms)
transforms.Compose([transforms.CenterCrop(10),transforms.ToTensor(), ])
官方文档只将该方法陈列,没有归纳总结,顺序很乱,这里总结一共有四大类,方便大家索引。
裁剪(Crop):—中心裁剪:
翻转和旋转——
图像变换(resize)
对transforms操作,使数据增强更灵活,transforms.RandomChoice(transforms),从给定一系列的transform中选一个进行操作,transforms.RandomApply(transforms, p=0.5),
给一个transform加上概率,依概率进行操作:transforms.RandomOrder。将transform中的操作进行随机打乱。
torchvision.transforms.RandomCrop(size,padding = None,pad_if_needed = False,fill = 0,padding_mode ='constant' )
torchvision.transforms.CenterCrop(size)
依据给定的sizesizesize从中心裁剪参数,size-(sequence or int).
若为sequencesequencesequence,则为(h,w)(h,w)(h,w),若为intintint,则为(size,size).
torchvision.transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=2)
将给定的PIL图像裁剪为随机大小和宽高比。
将原始图像大小变成随机大小(默认值:是原始图像的0.08到1.0倍)和随机宽高比(默认值:3/4到4/3倍)。这种方法最终调整到适当的大小。这通常用于训练Inception网络。
torchvision.transforms.FiveCrop(size)
将给定的PIL图像,裁剪为四个角和中央裁剪。
此转换返回图像元组,并且数据集返回的输入和目标数量可能不匹配。
torchvision.transforms.TenCrop(size, vertical_flip=False)
将给定的PIL图像裁剪为四个角,中央裁剪加上这些的翻转版本(默认使用水平翻转)。
此转换返回图像元组,并且数据集返回的输入和目标数量可能不匹配。
torchvision.transforms.ToTensor
功能:将PILImage或者ndarrayndarrayndarray,转换为tensortensortensor,
并且归一化至[0−1][0-1][0−1],
注意事项:归一化至[0-1]是直接除以255,若自己的ndarray数据尺度有变化,则需要自行修改。