transforms运行机制

通过import torchvision.transforms as transforms导入pytorch的计算机视觉包torchvision中的transforms模块。

torchvision 包由流行的数据集、模型体系结构和用于计算机视觉的常见图像转换组成

image-20200724104816574

torchvision.transforms : 常用的图像预处理方法

  • 数据中心化
  • 数据标准化
  • 缩放
  • 裁剪
  • 旋转
  • 翻转
  • 填充
  • 噪声添加
  • 灰度变换
  • 线性变换
  • 仿射变换
  • 亮度、饱和度及对比度变换

这是利用torchvision.transforms对一张图片进行数据增强的结果

image-20200724105153054

image-20200724105750192

transforms是在自定义dataset的__getitem__(self, index)中实现的

实验:

  1. 主函数中定义了两个transforms.Compose类,它的作用是将几个变换组合在一起。传入参数为Transform对象的列表。

    image-20200724111025620

  2. 我们知道transforms是在自定义dataset的__getitem__(self, index)中实现的,因此直接在这个位置打断点。

    image-20200724111553056

  3. self.transform是在__init__中定义的,就是传入在主函数定义的transforms.Compose类。

    image-20200724111736559

  4. 进入self.transform(img)查看,跳转到transforms.py的class Compose(object)__call__(self, img)。通过一个for循环将Transform对象的列表迭代,对img分别进行各种transform。

    image-20200724112247099

    image-20200724112426868

    image-20200724112956194

    image-20200724112851833

具体各个transform怎么实现懒得看了,就酱。