Pytorch torchvision.transforms小结

前言

PIL图像是pyhton种的一种标准图像类

Pytorch 中的accimage

 

正文

用Compose()把所有变形操作合并。

 mytrans = torchvision.transforms.Compose(
    transform1,
    transform2,
    ...,
)

 

尺寸处理

 

CLASS  torchvision.transforms.Resize(size, interpolation=2)

  • size resize PIL图像,如果size为一个sequence (h, w),则将图像resize成这个尺寸;如果size为一个int值,则将短边resize成这个尺寸,长边安装对应比例进行缩放,比如 (size * height / width, size)。
  • interpolation 采用何种插值方法,默认为双线性。
     

 

CLASS  torchvision.transforms.CenterCrop(size)

  • 从图像中心切割
  • size 为sequence (h, w),或者整数,决定输出尺寸,若为整数,则输出一个正方形 (size, size)

 

数值处理

 

CLASS  torchvision.transforms.Normalize(mean, std, inplace=False)

  • input需要为(C,H,W),一般会用ToTensor()预处理
  • 对每个channel,做正态化,input[channel] = (input[channel] - mean[channel]) / std[channel]

 

CLASS  torchvision.transforms.ToTensor ()

  • 把shape=(H x W x C)的PIL.Image,或者numpy.ndarray,转换成shape=(C x H x W)的像素值范围为[0.0, 1.0]的torch.FloatTensor
  • 像素值范围从[0, 255]转成 [  .0  , 1.0 ]
  • PIL Image 需要为 (L, LA, P, I, F, RGB, YCbCr, RGBA, CMYK, 1)这几种模式之一
  • np.ndarray需要 dtype = np.uint8
  • 上述两点不满足时,不进行像素值范围归一化(no scaling)

 

CLASS torchvision.transforms.ToPILImage(mode=None)

  • 把 shape = (C x H x W )  的 torch.*Tensor,或者shape=(H x W x C)的numpy.ndarray,转化成 (H x W x C)的PIL Image对象
  • 但不会改变像素值范围

 

我结合目前的经验做了个图:

 

其他骚操作

CLASS torchvision.transforms.Lambda(lambd)

  • Apply a user-defined lambda as a transform

 

CLASS torchvision.transforms.RandomHorizontalFlip(p=0.5)

  • 以固定概率p水平翻转(flip)PIL图像

CLASS torchvision.transforms.RandomVerticalFlip(p=0.5)

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

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

CLASS torchvision.transforms.FiveCrop(size)

 

 

 

 

//参考官方文档https://pytorch.org/docs/stable/torchvision/transforms.html

//博文PyTorch学习系列(二)——数据预处理torchvision.transforms

//博文transforms.ToTensor()本身有维度转换功能

//博文PyTorch进阶教程二

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值