PyTorch库 | (二) torchvision.transforms

torchvision.transforms

torchvision.transforms这个包中包含resizecrop等常见的data augmentation操作,基本上PyTorch中的data augmentation操作都可以通过该接口实现。该包主要包含两个脚本:transformas.pyfunctional.py,前者定义了各种data augmentation的类,在每个类中通过调用functional.py中对应的函数完成data augmentation操作。

该包主要包含五类变换:

  1. Transforms on PIL Image(对PIL.Image进行变换)
  2. Transforms on torch.Tensor(对Tensor进行变换)
  3. Conversion Transforms
  4. Generic Transforms(通用变换)
  5. Functional Transforms

1. Transforms on PIL Image

  1. class torchvision.transforms.Compose(transforms) :将多个transform组合起来使用。
  2. torchvision.transforms.RandomOrder(transforms) #以随机顺序应用转换列表。
  3. torchvision.transforms.RandomChoice(transforms):应用从列表中随机挑选的单个转换。
  4. 大小
  5. torchvision.transforms.Resize(size,interpolation = 2 ):将输入PIL图像的大小调整为给定大小。
  6. class torchvision.transforms.CenterCrop(size):将给定的PIL.Image进行中心切割,得到给定的size
  7. class torchvision.transforms.RandomCrop(size, padding=0):切割中心点的位置随机选取。
  8. torchvision.transforms.FiveCrop(size):将给定的PIL图像裁剪为四个角和中央裁剪。
  9. torchvision.transforms.TenCrop(size,vertical_flip = False ):将给定的PIL图像裁剪为四个角,中央裁剪加上这些的翻转版本(默认使用水平翻转)。
  10. class torchvision.transforms.RandomSizedCrop(size, interpolation=2):先将给定的PIL.Image随机切,然后再resize成给定的size大小。
  11. 翻转
  12. class torchvision.transforms.RandomHorizontalFlip:随机水平翻转给定的PIL.Image,概率为0.5
  13. torchvision.transforms.RandomVerticalFlip(p = 0.5 ):以给定的概率随机垂直翻转给定的PIL图像。
  14. class torchvision.transforms.Pad(padding, fill=0):将给定的PIL.Image的所有边用给定的pad value填充。 padding:要填充多少像素 ;fill:用什么。
  15. 变换
  16. torchvision.transforms.RandomRotation(degrees,resample = False,expand = False,center = None ):按角度旋转图像。
  17. torchvision.transforms.RandomAffine(degrees,translate = None,scale = None,shear = None, resample = False,fillcolor = 0 ):图像保持中心不变的随机仿射变换。
  18. torchvision.transforms.RandomPerspective(distortion_scale = 0.5,p = 0.5,interpolation = 3 ):以给定的概率随机执行给定PIL图像的透视变换 。
  19. 颜色
  20. class torchvision.transforms.ColorJitter(亮度= 0,对比度= 0,饱和度= 0,色调= 0 ): 随机更改图像的亮度,对比度和饱和度。
    14.torchvision.transforms.RandomGrayscale(p = 0.1):将图像随机转换为灰度,概率为p(默认值为0.1)。

2. Transforms on torch.Tensor

  1. class torchvision.transforms.Normalize(mean, std):给定均值:(R,G,B), 方差:(R,G,B),将会把Tensor正则化。即:Normalized_image=(image-mean)/std

3. Conversion Transforms

  1. class torchvision.transforms.ToTensor:把一个取值范围是[0,255]PIL.Image或者shape(H,W,C)numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1.0]torch.FloadTensor
  2. class torchvision.transforms.ToPILImage:将shape为(C,H,W)Tensorshape(H,W,C)numpy.ndarray转换成PIL.Image,值不变。

4. Generic Transforms

  1. class torchvision.transforms.Lambda(lambd):使用lambd作为转换器。

5. Functional Transforms

功能转换提供了对转换管道的细粒度控制。与上面的转换相反,功能转换不包含其参数的随机数生成器。这意味着您必须指定/生成所有参数。

  1. torchvision.transforms.functional.adjust_brightness(img,brightness_factor ) #调整图像的亮度,返回的是亮度调整后的PIL图像
  2. torchvision.transforms.functional.adjust_contrast(img,contrast_factor )#调整图像的对比度。
  3. torchvision.transforms.functional.adjust_hue(img,hue_factor )#调整图像的色调。
  4. torchvision.transforms.functional.affine(img,angle,translate,scale,shear,resample = 0,fillcolor = None )#在图像保持图像中心不变的情况下应用仿射变换。
  5. torchvision.transforms.functional.crop(img,i,j,h,w )#裁剪给定的PIL图像。
  6. torchvision.transforms.functional.erase(img,i,j,h,w,v )#用给定值擦除输入Tensor Image,返回的是删除图像。
  7. torchvision.transforms.functional.five_crop(img,size )#将给定的PIL图像裁剪为四个角和中央裁剪。
  8. torchvision.transforms.functional.hflip(img )#水平翻转给定的PIL图像,img(PIL图像) - 要翻转的图像。
  9. torchvision.transforms.functional.normalize(tensor,mean,std,inplace = False )#用平均值和标准偏差归一化张量图像。
  10. torchvision.transforms.functional.pad(img,padding,fill = 0,padding_mode ='constant' )#使用指定的填充模式和填充值在所有面上填充给定的PIL图像。
  11. torchvision.transforms.functional.perspective(img, startpoints, endpoints, interpolation=3)#执行给定PIL图像的透视变换。
  12. torchvision.transforms.functional.resized_crop(img,i,j,h,w,size,interpolation = 2 ) #裁剪给定的PIL图像并将其调整为所需大小。特别是用于RandomResizedCrop。
  13. torchvision.transforms.functional.ten_crop(img,size,vertical_flip = False ) #将给定的PIL图像裁剪成四个角,中央裁剪加上这些翻转版本(默认使用水平翻转)#返回值为元组(tl,tr,bl,br,center,tl_flip,tr_flip,bl_flip,br_flip,center_flip)对应的左上角,右上角,左下角,右下角和中心裁剪,翻转图像相同。
  14. torchvision.transforms.functional.to_grayscale(img,num_output_channels = 1 ) #将图像转换为图像的灰度版本。
  15. torchvision.transforms.functional.to_tensor(pic )#Convert a PIL Image or numpy.ndarray to tensor.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值