PyTorch 学习笔记(二):PyTorch的数据增强与数据标准化

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击文末“阅读原文”立刻申请入群~

作者 | 余霆嵩

来源专栏 | PyTorch学习笔记

已获作者原创授权,请勿二次转发

本文截取自一个github上千星的火爆教程——《PyTorch 模型训练实用教程》,教程内容主要为在 PyTorch 中训练一个模型所可能涉及到的方法及函数的详解等,本文为作者整理的学习笔记(二),后续会继续更新这个系列,欢迎关注。

项目代码:https://github.com/tensor-yu/PyTorch_Tutorial

系列回顾:PyTorch 学习笔记(一):让PyTorch读取你的数据集

在实际应用过程中,我们会在数据进入模型之前进行一些预处理,例如数据中心化(仅减均值),数据标准化(减均值,再除以标准差),随机裁剪,旋转一定角度,镜像等一系列操作。PyTorch有一系列数据增强方法供大家使用,下面将介绍这些方法。

在PyTorch中,这些数据增强方法放在了transforms.py文件中。这些数据处理可以满足我们大部分的需求,通过熟悉transforms.py,以及1.4节中的内容,我们也可以自定义数据处理函数,实现自己的数据增强。

在本小节,从宏观地介绍transform的使用,在下一小节,将会详细介绍transform的所有操作。

transform的使用

请查看/Code/main_trainingmain.py中代码:

normMean = [0.4948052, 0.48568845, 0.44682974]normStd = [0.24580306, 0.24236229, 0.2603115]normTransform = transforms.Normalize(normMean, normStd)trainTransform = transforms.Compose([ transforms.Resize(32), transforms.RandomCrop(32, padding=4), transforms.ToTensor(), normTransform ])validTransform = transforms.Compose([ transforms.ToTensor(), normTransform ])

前三行设置均值,标准差,以及数据标准化:transforms.Normalize()函数,这里是以通道为单位进行计算均值,标准差。然后用transforms.Compose将所需要进行的处理给compose起来,并且需要注意顺序!

在训练时,依次对图片进行以下操作:

1. 随机裁剪2. Totensor3. 数据标准化(减均值,除以标准差)

1. 随机裁剪 第一个处理是随机裁剪,在裁剪之前先对图片的上下左右均填充上4个pixel,值为0,即变成一个40*40的数据,然后再随机进行3232的裁剪。例如下图,是经过transforms.RandomCrop(32, padding=4),之后的图片,其中红色框是原始图片数据,31列是填充的0,28-31行也是填充的0.

2. Totensor 第二个处理是 transforms.ToTensor() 在这里会对数据进行transpose,原来是hwc,会经过img = img.transpose(0, 1).transpose(0, 2).contiguous(),变成chw再除以255,使得像素值归一化至[0-1]之间,来看看Red通道。

来看看27行,30列 原来是8的, 经过ToTensor之后变成:8/255= 0.03137255

3. 数据标准化(减均值,除以标准差) 第三个处理是对图像进行标准化,通过标准化之后,再来看看Red通道的数据:

至此,数据预处理完毕,最后转换成Variable类型,就是输入网络模型的数据了。

细心的朋友可能会发现,在进行Normalize时,需要设置均值和方差,在这里直接给出了,但在实际应用中是要去训练集中计算的,天下可没有免费的午餐。

这里给出计算训练集的均值和方差的脚本:

https://github.com/tensor-yu/PyTorch_Tutorial/blob/master/Code/1_data_prepare/1_5_compute_mean.py

(0)

相关推荐

  • 《大话脑成像》八:组水平标准化

    2018已经到来,值此新春佳节之际,作为西南地区第一颜值担当的我继续为大家带来更加丰富多彩,干货满满的脑影像处理中的一些关键知识点讲解,并且不要19888,也不要198,完全免费,下面就由非常高端非常 ...

  • 如何转换opencv的图片格式在pytorch中使用

    首先,如上图所示,opencv读入的图像为 RGB格式,但是我们在pytorch中进行图像处理时,要先将RGB转换成BGR,然后在使用img = Image.fromarray(np.uint8(se ...

  • 深度学习之PyTorch实战(2)——神经网络模型搭建和参数优化

    如果需要小编其他论文翻译,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote 上一篇博客先搭建 ...

  • 标准化和归一化,请勿混为一谈,透彻理解数据变换

    标准化与归一化 5.1.log变换 5.2.sigmoid变换(sigmoid函数) 5.3.softmax变换(softmax函数) 5.4.boxcox变换 1.1.定义 1.2.联系和差异 1. ...

  • 【自动保存】python...

    ​题型: 1.单项选择题(1分*20= 20分) 2.算法基础(15+10+15分,,共40分) 3.算法实现(20分*2=40分) 重点 1.常见的数据的类型 关系数据库 事务数据库 数据仓库 高级 ...

  • C3F:首个开源人群计数算法框架

    导读:52CV曾经报道多篇拥挤人群计数相关的技术,比如最近的: CVPR 2019 | 西北工业大学开源拥挤人群数据集生成工具,大幅提升算法精度 视频监控的普及,需求推动技术的快速进步. 本文为首个P ...

  • 数据规范化(归一化)、及Z

    数据规范化 数据规范化(归一化)处理是数据挖掘的一项基础工作.不同评价指标往往具有不同的量纲,数值见的差别可能很大,不进行处理可能会影响到数据分析的结果.为了消除指标之间的量纲和取值范围差异的影响,需 ...

  • PyTorch 学习笔记(三):transforms的二十二个方法

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  • PyTorch 学习笔记(七):PyTorch的十个优化器

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  • PyTorch 学习笔记(六):PyTorch的十七个损失函数

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  • PyTorch 学习笔记(五):Finetune和各层定制学习率

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  • PyTorch 学习笔记(四):权值初始化的十种方法

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  • PyTorch 学习笔记(一):让PyTorch读取你的数据集

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  • Angular 服务器端渲染的学习笔记(二)

    官网地址:https://angular.io/guide/universal I have mainly used angular universal for SEO purposes. In th ...

  • 《中医基础理论》学习笔记(二)

    中医学的理论体系 气一元论:"气"在中国哲学史上是一个很重要的范畴,在中医学的学术思想中占有特别重要的地位,是中医学的哲学和医学理论的基石.气是物质实体,是构成宇宙天地以及天地万物 ...

  • flask学习笔记(二):文件浏览器+下载指定文件夹中的文件

                                 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 需求 利用flask开一个web-a ...