数据归一化处理transforms.Normalize()

1. 图像预处理Transforms(主要讲解数据标准化)

1.1 理解torchvision

transforms属于torchvision模块的方法,它是常见的图像预处理的方法
在这里贴上别人整理的transforms运行机制:

可以看出torchvision工具包中包含三个主要模块,主要讲解学习transforms

torchvision.transforms:常用的数据预处理方法,提升泛化能力
包括:数据中心化、数据标准化、缩放、裁剪、旋转、翻转、填充、噪声添加、灰度变换、线性变换、仿射变换、亮度、饱和度及对比度变换等

1.2 数据标准化——transforms.normalize()

功能:逐channel的对图像进行标准化(均值变为0,标准差变为1),可以加快模型的收敛
output = (input - mean) / std
mean:各通道的均值
std:各通道的标准差
inplace:是否原地操作
思考:
(1)据我所知,归一化就是要把图片3个通道中的数据整理到[-1, 1]区间。
x = (x - mean(x))/std(x)
只要输入数据集x确定了,mean(x)和std(x)也就是确定的数值了,为什么Normalize()函数还需要输入mean和std的数值呢????

(2)RGB单个通道的值是[0, 255],所以一个通道的均值应该在127附近才对。
如果Normalize()函数去计算 x = (x - mean)/std ,因为RGB是[0, 255],算出来的x就不可能落在[-1, 1]区间了。

(3)在我看的了论文代码里面是这样的:
torchvision.transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
为什么就确定了这一组数值,这一组数值是怎么来的? 为什么这三个通道的均值都是小于1的值呢?
理解:
(1)针对第一个问题,mean 和 std 肯定要在normalize()之前自己先算好再传进去的,不然每次normalize()就得把所有的图片都读取一遍算这两个
(2)针对第二个问题,有两种情况
(a )如果是imagenet数据集,那么ImageNet的数据在加载的时候就已经转换成了[0, 1].
(b) 应用了torchvision.transforms.ToTensor,其作用是将数据归一化到[0,1](是将数据除以255),transforms.ToTensor()会把HWC会变成C *H *W(拓展:格式为(h,w,c),像素顺序为RGB)
(3)针对第三个问题:[0.485, 0.456, 0.406]这一组平均值是从imagenet训练集中抽样算出来的。
继续有疑问:
ToTensor 已经[0,1]为什么还要[0.485, 0.456, 0.406]?那么归一化后为什么还要接一个Normalize()呢?Normalize()是对数据按通道进行标准化,即减去均值,再除以方差
解答:
别人的解答:数据如果分布在(0,1)之间,可能实际的bias,就是神经网络的输入b会比较大,而模型初始化时b=0的,这样会导致神经网络收敛比较慢,经过Normalize后,可以加快模型的收敛速度。
因为对RGB图片而言,数据范围是[0-255]的,需要先经过ToTensor除以255归一化到[0,1]之后,再通过Normalize计算过后,将数据归一化到[-1,1]。
是否可以这样理解:
[0,1]只是范围改变了, 并没有改变分布,mean和std处理后可以让数据正态分布

数据归一化处理transforms.Normalize()相关推荐

  1. PyTorch数据归一化处理:transforms.Normalize及计算图像数据集的均值和方差

    PyTorch数据归一化处理:transforms.Normalize及计算图像数据集的均值和方差 1.数据归一化处理:transforms.Normalize 1.1 理解torchvision 1 ...

  2. pytorch图片数据归一化,通常传入transforms.Normalize(mean,std,inplace=False)中的mean和std是如何获取的?

    pytorch做标准化利用transforms.Normalize(mean_vals, std_vals),其中常用数据集的均值方差有: if 'coco' in args.dataset:mean ...

  3. 深度之眼Pytorch打卡(九):Pytorch数据预处理——预处理过程与数据标准化(transforms过程、Normalize原理、常用数据集均值标准差与数据集均值标准差计算)

    前言   前段时间因为一些事情没有时间或者心情学习,现在两个多月过去了,事情结束了,心态也调整好了,所以又来接着学习Pytorch.这篇笔记主要是关于数据预处理过程.数据集标准化与数据集均值标准差计算 ...

  4. PyTorch学习笔记——图像处理(transforms.Normalize 归一化)

    PyTorch学习笔记--图像处理 transforms.Normalize 归一化 回顾 torchvision.ToTensor 归一化 transforms.Normalize 公式 回顾 to ...

  5. torchvision 笔记:transforms.Normalize()

    一般和transforms.ToTensor()搭配使用 作用就是先将输入归一化到(0,1)[transforms.ToTensor()],再使用公式"(x-mean)/std", ...

  6. 使用transforms.Normalize((0.5,), (0.5,))异常报错“Process finished with exit code -1073741676 (0xC0000094)”

    目录 1 问题描述 2 EDA分析 3 解决方案 1 问题描述 今天在使用transforms.Normalize((0.5,), (0.5,))对MNIST数据集中的图像进行归一化时,程序执行到这里 ...

  7. transforms.ToTensor()与transforms.Normalize()函数解析

    1.transforms.ToTensor()作用 ToTensor()将shape为(H, W, C)的nump.ndarray或img转为shape为(C, H, W)的tensor,其将每一个数 ...

  8. transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理

    transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理 1.问题描述 问题来源于pytorch实现CNN神经网络的示 ...

  9. 浅谈对transforms.ToTensor()和transforms.Normalize()函数的理解

    前言 在进行tensor图片数据进行视觉时,一般会进行预处理操作,这个时候就需要用到ToTensor()和Normalize()这两个函数. 提示:以下是本篇文章正文内容,下面案例可供参考 一.ToT ...

最新文章

  1. 客户端与服务器持续同步解析(轮询,comet,WebSocket)
  2. CriminalIntent项目的强大完善
  3. layui 给table里面的添加图标_layui中的table中toolbar自定义过程
  4. Azure 国际版与中国版服务列表对(2020年6月版)
  5. Feather包实现数据框快速读写,你值得拥有
  6. Java StringBuffer
  7. 8086简单的指令流水线_在8086微处理器中执行流水线的指令和概念的步骤
  8. MySQL常见面试题与答案
  9. iOS 10 不提示「是否允许应用访问数据」,导致应用无法使用的解决方案
  10. 计算机组成原理浮点数左移规则,2020考研计算机组成原理知识点:浮点数的表示和运算...
  11. STC15点亮WS2812灯珠(C结合汇编)
  12. 26.TCP/IP 详解卷1 --- Telnet 和 Rlogin : 远程登录
  13. checkbox:全选、全不选、单选(慕课网题目)
  14. mybatis源码解析
  15. 衡水二中2021清华北大高考成绩查询,衡水二中:把5分钟利用成2小时,清北再录取101人!...
  16. foo, bar ,baz
  17. 学习笔记:强化学习与最优控制(Chapter 2)
  18. 如何在Windows 8.1中“忘记”有线(或无线)网络
  19. UEFI+GPT+双硬盘下 搭建Windos10 和CentOS7 双系统
  20. CSDN英雄会上会英雄

热门文章

  1. 【商业信息】PNP ID注册名单 2019-05-21
  2. 腾讯QQ发起临时会话
  3. Appium+Python MAC安装Android夜神模拟器(二)
  4. 页面地址index.html,分析首页链接:/和/index.html
  5. 发送短信并存入短信库
  6. Python爬虫: 单网页 所有静态网页 动态网页爬取
  7. 2023进销存软件排行榜
  8. CEP的一个简单理解
  9. 世界各国劳动力总数数据集1990-2019年
  10. h5+(mui) 截图分享微信