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

article/2025/8/15 18:56:26

数据归一化处理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处理后可以让数据正态分布😂
参考:
pytorch torchvision.transforms.Normalize()中的mean和std参数—解惑
pytorch的transform中ToTensor接着Normalize
另外这篇包含数据增强部分:
Pytorch框架学习(6)——transforms与normalize
拓展:
数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力。


http://chatgpt.dhexx.cn/article/og6QFYXp.shtml

相关文章

数据处理方法:归一化与标准化处理

在数据挖掘中,在建模前需要对数据进行预处理,预处理方法包括归一化与标准化,对数据进行缩放。 1.归一化(Normalization) 将数据缩放到0-1之间线性(常用)归一化:最大最小值归一化&a…

【python学习】数据预处理-如何归一化?

作者:代码律动 链接:数据预处理的归一化手段应该如何应用到训练集,测试集和验证集中? - 知乎 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 作者:Orginal 链…

一文速学-数据预处理归一化详细解释

目录 一、为何要进行数据预处理? 二、数据标准化 1.归一化的目标 2.归一化的优点 3.哪些算法并不需要归一化 三、数据归一化方法 1.min-max标准化 2.Z-score标准化 3.Sigmoid函数: 总结 一、为何要进行数据预处理? 1.任何收集而来…

机器学习中的特征工程

机器学习中的特征工程 什么是特征工程 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。特征工程指的是把原始数据转变为模型的训练数据的过程,它的目的就是获取更好的训练数据特征,使得机器学习模型逼近这个上限。 构…

【特征工程】特征衍生+案例

问:特征衍生上千、万的变量,是怎么做的? 问:大家是如何衍生出成千上万个变量的?衍生变量是怎么生成的? 研习社-上海-桂浩: 请教一个问题,大家是如何衍生出成千上万个变量的?衍生变量…

细说:特征工程 - Feature Engineering

转载至http://www.csuldw.com/2015/10/24/2015-10-24%20feature%20engineering/ 先来一张思维导图: 坊间常说:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。由此可见,特征工程在机器学习中占有相当重要…

机器学习——特征工程

目录 特征工程 特征构造 特征选择 特征提取 模拟训练 训练数据收集方法 特征工程 特征工程就是一个从原始数据提取特征的过程,这些特征可以很好地描述这些数据,并且利用它们建立的模型在未知数据上的性能可以达到最优,最大限度减少“垃…

特征工程文章收集

1. 离散特征编码方法 数据预处理:离散特征编码方法_快乐小码农的博客-CSDN博客_离散特征编码文章目录数据预处理:离散特征编码方法无监督方法:1.序号编码OrdinalEncoder2.独热编码OneHotEncoder3.二进制编码BinaryEncoder4.计数编码CountEnco…

2022年Python自动化特征工程框架

💡 作者:韩信子ShowMeAI 📘 机器学习实战系列:https://www.showmeai.tech/tutorials/41 📘 本文地址:https://www.showmeai.tech/article-detail/328 📢 声明:版权所有,转…

数据的特征工程

数据的特征工程 1.特征工程是什么 特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的模型准确性 2.特征工程的意义 更好的特征意味着更强的鲁棒性 更好的特征意味着只需用简单模型 更好的特征意味着更好的结果 3.…

机器学习中的特征建模(特征工程)和算法选型建模 - 以暴力破解识别为例

catalogue 1. 特征工程是什么?有什么作用? 2. 特征获取方案 - 如何获取这些特征? 3. 特征观察 - 运用各种统计工具、图标等工具帮助我们从直观和精确层面认识特征中的概率分布 4. 特征处理 - 特征清洗 5. 特征护理 - 特征预处理 6. 特征处理 …

机器学习之特征工程

机器学习之特征工程 转载自: 点击打开链接 在这个振奋人心的程序员节日里,我决定认真地写一篇文章来纪念一下自己这长达六年程序员史。o(╯□╰)o 本文是一篇关于特征工程的总结类文章,如有不足之处或理解有偏差的地方,还望多多指…

Python机器学习—特征工程

文章目录 1、数据集1.1 可用数据集1.2 scikit-learn数据集sklearn小数据集sklearn大数据集 1.3 数据集的划分数据集划分API 2.特征工程2.1特征工程包含内容 3.特征提取3.1字典特征提取3.2 文本特征提取3.3中文文本特征提取3.4 Tf-idf文本特征提取公式 4.特征预处理4.1 归一化4.…

特征工程全过程

文章目录 简介数据预处理 无量纲化 标准化区间缩放法标准化与归一化的区别对定量特征二值化对定性特征哑编码缺失值计算数据变换回顾特征选择 Filter 方差选择法相关系数法卡方检验互信息法Wrapper 递归特征消除法Embedded 基于惩罚项的特征选择法基于树模型的特征选择法总结降…

特征工程与自动特征工程

目录 1. 什么是特征工程 2. 什么是自动特征工程 2.1 自动方法有哪些 3. 文献说明 4、参考文献 1. 什么是特征工程 特征工程,是指用一系列工程化的方式从原始数据中提取出更好的数据特征,以提升模型的训练效果。特征工程是机器学习中不可或缺的一部…

特征工程常用方法

特征工程 ●特征(feature) :数据中抽取出来的对结果预测有用的信息。 ●特征的个数就是数据的观测维度 ●特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程, ●特征工程一般包括特征清…

特征工程——文本特征

目录 文本特征 1.expansion编码 2.consolidation编码 3.文本长度特征 4.标点符号特征 5.词汇属性特征 6.特殊词汇特征 7.词频特征 8.TF-IDF特征 9.LDA特征 注意: 1. 本系列所有的文章主要是梯度提升树模型展开的,抽取的特征主要为帮助梯度提升…

时间序列特征工程

关注微信公众号“时序人”获取更好的阅读体验 时间序列知识整理系列 时间序列统计分析时间序列聚类时间序列预测时间序列回归时间序列特征工程时间序列补缺时间序列异常检测 前几次的文章分享,我们了解了时间序列分析的基础方法以及预测方法。但在使用这些方法一般…

机器学习——特征工程——交互特征(多项式特征)

一、交互特征定义 两个特征的乘积可以组成一对简单的交互特征,这种相乘关系可以用逻辑操作符AND来类比,它可以表示出由一对条件形成的结果:“该购买行为来自于邮政编码为98121的地区”AND“用户年龄在18和35岁之间”。这种特征在基于决策树的…

特征工程到底是什么?

特征工程是一个过程,它首先在概念上,然后在程序上将一个原始样本转化为特征向量。它包括将一个特征概念化,然后编写程序代码,可能借助一些间接数据,将整个原始样本转化为一个特征。 4.1 为什么要进行特征工程 具体来…