来自官方文档-torchvision/transforms
transforms.CenterCrop中心裁剪
torchvision.transforms.CenterCrop(size)
根据给定的size从中心裁剪,size可以是sequence或者int,即(h, w)或者(size, size)。
transforms.RandomCrop随机裁剪
torchvision.transforms.RandomCrop(size, padding = None, pad_if_needed = False, fill = 0, padding_mode ='constant')
transforms.RandomResizedCrop随机长宽比裁剪
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网络。
transforms.FiveCrop上下左右中心裁剪
torchvision.transforms.FiveCrop(size)
将给定的PIL图像裁剪为四个角和中央裁剪。
此转换返回图像元组,并且数据集返回的输入和目标数量可能不匹配。
transforms.TenCrop上下左右中心裁剪后旋转
torchvision.transforms.TenCrop(size, vertical_flip=False)
将给定的PIL图像裁剪为四个角,中央裁剪加上这些的翻转版本(默认使用水平翻转)。
此转换返回图像元组,并且数据集返回的输入和目标数量可能不匹配。
transforms.RandomHorizontalFlip(p=0.5)依概率水平翻转
torchvision.transforms.RandomHorizontalFlip(p=0.5)
transforms.RandomVerticalFlip(p=0.5)依概率垂直翻转
torchvision.transforms.RandomVerticalFlip(p=0.5)
transforms.RandomFlip随机旋转
torchvision.transforms.RandomRotation(degrees, resample=False, expand=False, center=None)
transforms.Resize改变大小
torchvision.transforms.Resize(size, interpolation=2)
将输入PIL图像的大小调整为给定大小。
transforms.Normalize标准化
torchvision.transforms.Normalize(mean, std)
用平均值和标准偏差归一化张量图像。给定mean:(M1,…,Mn)和std:(S1,…,Sn)对于n通道,此变换将标准化输入的每个通道,torch.*Tensor即 input[channel] = (input[channel] - mean[channel]) / std[channel]
transforms.ToTensor转为Tensor,并归一化到[0,1]
torchvision.transforms.ToTensor
功能:将PIL Image或者 ndarray 转换为tensor,并且归一化至[0-1] 注意事项:归一化至[0-1]是直接除以255,若自己的ndarray数据尺度有变化,则需要自行修改。
transforms.Pad填充
torchvision.transforms.Pad(padding, fill=0, padding_mode='constant')
# 参考transforms.RandomCrop随机裁剪
transforms.ColorJitter修改亮度、对比度、饱和度
torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)
随机更改图像的亮度,对比度和饱和度。
transforms.Grayscare转灰度图
torchvision.transforms.Grayscale(num_output_channels=1)
将图像转换为灰度。
功能:将图片转换为灰度图 参数: num_output_channels- (int) ,当为1时,正常的灰度图,当为3时, 3 channel with r == g == b
transforms.RandomGartscare依概率转灰度图
torchvision.transforms.RandomGrayscale(p=0.1)
功能:依概率p将图片转换为灰度图,若通道数为3,则3 channel with r == g == b
transforms.LinearTransformation线性变换
torchvision.transforms.LinearTransformation(transformation_matrix)
使用方形变换矩阵和离线计算的mean_vector变换张量图像。给定transformation_matrix和mean_vector,将使矩阵变平。从中拉伸并减去mean_vector,然后用变换矩阵计算点积,然后将张量重新整形为其原始形状。
白化转换:假设X是列向量零中心数据。然后torch.mm计算数据协方差矩阵[D x D],对该矩阵执行SVD并将其作为transformation_matrix传递。
transforms.RandomAffine仿射变换
torchvision.transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0)
图像保持中心不变的随机仿射变换。
transforms.ToPILImage转为PIL的图
torchvision.transforms.ToPILImage(mode=None)
功能:将tensor 或者 ndarray的数据转换为 PIL Image 类型数据 参数: mode- 为None时,为1通道, mode=3通道默认转换为RGB,4通道默认转换为RGBA。
transforms.Lambda依据用户定义的函数变换
torchvision.transforms.Lambda(lambd )
transforms.RandomChoice(transforms)从给定的transforms中选择一个进行操作
torchvision.transforms.RandomChoice(transforms)
transforms.RandomApply(transforms, p=0.5)给一个transforms加上概率,依概率进行操作
torchvision.transforms.RandomApply(transforms, p=0.5)
torchvision.transforms.RandomOrder(transforms)