0%

Pytorch transforms

Transfroms

1. 裁剪——Crop

1.1 随机裁剪:transforms.RandomCrop()

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

    • 功能:依据给定的size随机裁剪

    • 参数:

      • size-(sequence or int),若为sequence, 则为(h, w),若为int, 则(size, size)

      • padding-(sequence or int, optional),此参数是设置为多少个pixel,当为int时,图像上下左右均填充int个,例如padding=4,则上下左右均填充4个padding, 若为32 * 32,则会变成40 * 40;当为sequence时,若有两个数,则第一个数表示左右扩充多少,第二个数表示上下的,当有4个数是,则为左、上、右、下

      • fill-(int or tuple),填充的值是什么(仅当填充模式为constant时有用)。int时,各通道均填充该值,当长度为3的tuple时,表示RGB通道需要填充的值

      • padding-mode,填充模式(constant(常量), edge(按照图片边缘的像素值来填充),reflect, symmetric)

1.2 中心裁剪:transforms.CenterCrop()

1.3 随机长宽比裁剪 transforms.RandomResizedCrop()

1.4 上下左右中心裁剪:transforms.FiveCrop()

1.5 上下左右中心裁剪后翻转:transform.TenCrop()

2. 翻转和旋转——Flip and Rotation

2.1 依概率p水平翻转 transfroms. RandomHorizontalFlip()

2.2 依概率p垂直翻转 transforms.RandomVerticalFlip()

2.3 随机旋转 transforms.RandomRotation()

3. 图像变换

3.1 resize transform.Resize

3.2 标准化 transform.Normalize

3.3 转为tensor transforms.ToTensor

3.4 填充 transforms.Pad

3.5 修改亮度、对比度和饱和度 transforms.ColorJitter()

3.6 转灰度图 transforms.GrayScale

3.7 线性变换 transforms.LinearTransformation()

3.8 放射变换 transform.RandomAffine

3.9 依概率p转为灰度图 transforms.RandomGrayScale

3.10 将数据转换为PILImage transforms.ToPILImage

3.11 transforms.Lambda

4. 对transforms操作,使数据增强更灵活

4.1 transforms.RandomChoice(transfroms)

4.2 transforms.RandomApply(transforms, p=0.5)

4.3 transforms.RandomOrder