pytorch中的transforms模块实例详解

作者:gaishi_hero 时间:2022-04-25 19:50:58 

pytorch中的transforms模块中包含了很多种对图像数据进行变换的函数,这些都是在我们进行图像数据读入步骤中必不可少的,下面我们讲解几种最常用的函数,详细的内容还请参考pytorch官方文档(放在文末)。


data_transforms = transforms.Compose([
   transforms.RandomResizedCrop(224),
   transforms.RandomHorizontalFlip(),
   transforms.ToTensor(),
   transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
 ])

从上面的data_transforms变量中我们能够看出进行了多种变换,而Compose方法是将多种变换组合起来。data_transforms中一共包含了四个变换,前两个是对PILImage进行的,分别对其进行随机大小(默认原始图像大小的0.08-1.0)和随机宽高比(默认原始图像宽高比的3/4-4/3)的裁剪,之后resize到指定大小224;以及对原始图像进行随机(默认0.5概率)的水平翻转。

第三个transforms.ToTensor()的变换操作是关键一步,它将PILImage转变为torch.FloatTensor的数据形式,这种数据形式一定是C x H x W的图像格式加上[0,1]的大小范围。它将颜色通道这一维从第三维变换到了第一维。

最后的Normalize变换是对tensor这种数据格式进行的,它的操作是用给定的均值和标准差分别对每个通道的数据进行正则化。具体来说,给定均值(M1,...,Mn),给定标准差(S1,..,Sn),其中n是通道数(一般是3),对每个通道进行如下操作:


output[channel] = (input[channel] - mean[channel]) / std[channel]

最后需要强调一点的是,这几个变换的先后顺序有一定的讲究,因为不同的方法所处理的对象不一样,前两种变换是对PILImage进行的,而Normalize则是对tensor进行的,所以处理PILImage的变换方法(大多数方法)都需要放在ToTensor方法之前,而处理tensor的方法(比如Normalize方法)就要放在ToTensor方法之后。

附上pytorch官方参考:https://pytorch.org/docs/stable/torchvision/transforms.html?highlight=torchvision%20transforms

来源:https://blog.csdn.net/gaishi_hero/article/details/81153926

标签:pytorch,transforms
0
投稿

猜你喜欢

  • CSS 几条经典的 CSS Tips

    2008-08-20 18:40:00
  • python多进程实现文件下载传输功能

    2022-06-27 02:22:41
  • python random从集合中随机选择元素的方法

    2023-07-05 08:29:45
  • Python实现的计算器功能示例

    2023-02-16 22:25:30
  • python的concat等多种用法详解

    2022-08-14 23:37:18
  • mysql 安装使用小记

    2011-02-23 12:33:00
  • Python实现的维尼吉亚密码算法示例

    2023-08-25 10:19:25
  • Django 缓存配置Redis使用详解

    2021-12-27 12:34:32
  • php获取通过http协议post提交过来xml数据及解析xml

    2023-11-14 15:43:36
  • 如何使用PyCharm将代码上传到GitHub上(图文详解)

    2021-02-18 05:13:31
  • python聚类算法选择方法实例

    2023-12-01 13:51:11
  • python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享

    2023-04-29 08:57:32
  • 不拘小节的中文字体设计

    2009-05-21 10:44:00
  • 详解配置Django的Celery异步之路踩坑

    2022-11-25 22:06:45
  • 奇淫技巧之图片切割

    2010-09-21 13:24:00
  • asp 数据库连接函数代码

    2011-04-04 11:08:00
  • oracle 发送邮件 实现方法

    2009-06-10 17:49:00
  • python使用wxpython开发简单记事本的方法

    2022-05-15 18:06:12
  • CSS阴影详解

    2009-12-04 18:31:00
  • 基于python的Tkinter实现一个简易计算器

    2021-07-15 19:15:12
  • asp之家 网络编程 m.aspxhome.com