数据预处理中的归一化与反归一化

article/2025/8/14 19:13:06

前言

在使用深度学习框架构建训练数据时,通常需要数据归一化(Normalize),以利于网络的训练。而在训练过程可视化中,通常需要反归一化。以PyTorch框架而言,提供了torchvision.transforms.Normalize(mean, std, inplace=False)方法用于归一化。

在这里插入图片描述

归一化

归一化的实质是将数据的分布根据均值和标准差进行调整。

#torchvision.transforms.Normalize(mean, std, inplace=False)
output[channel] = (input[channel] - mean[channel]) / std[channel]

在实际应用过程中通常有三种方式:

(1)普通归一化

将经过ToTensor()方法(能够把范围从[0,255]变换到[0,1]之间)后的数据缩放到[-1, 1]之间。

transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))

(2)ImageNet先验归一化

transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))

该均值和标准差来源于ImageNet数据集统计得到,如果建立的数据集分布和ImageNet数据集数据分布类似(来自生活真实场景,例如人像、风景、交通工具等),或者使用PyTorch提供的预训练模型,推荐使用该参数归一化。如果建立的数据集并非是生活真实场景(如生物医学图像),则不推荐使用该参数。

在这里插入图片描述

(3)计算数据集的均值和标准差

对于特定的数据集,可以直接通过对训练集进行统计计算其均值和标准差。

反归一化

针对普通归一化方法的反归一化:

def denorm(x):out = (x + 1) / 2return out.clamp_(0, 1)

针对ImageNet先验归一化方法的反归一化:

class UnNormalize(object):def __init__(self, mean, std):self.mean = meanself.std = stddef __call__(self, tensor):"""Args:tensor (Tensor): Tensor image of size (C, H, W) to be normalized.Returns:Tensor: Normalized image."""for t, m, s in zip(tensor, self.mean, self.std):t.mul_(s).add_(m)# The normalize code -> t.sub_(m).div_(s)return tensorunorm = UnNormalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))
unorm(tensor)

在这里插入图片描述

在这里插入图片描述

参考资料

[1] image processing[数据归一化]均值和方差设置
[2] torchvision.transforms.Normalize(mean, std, inplace=False)
[3] How to get these data(means = [0.485, 0.456, 0.406] stds = [0.229, 0.224, 0.225]) in your code? #6
[4] Why Pytorch officially use mean=[0.485, 0.456, 0.406] and std=[0.229, 0.224, 0.225] to normalize images?
[5] Simple way to inverse transform ? Normalization
[6] PyTorch函数之torchvision.transforms.ToTensor()和Normalize()
[7] pytorch 归一化与反归一化


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

相关文章

归一化的作用

首先,归一化是把数据转化为(0,1)或者是(-1,1)之间。(-1,1): (x-xmax)/(xmax-xmin) 标准化是把数据转化到均值为0,方差为1. 中心化&am…

数据的归一化处理

数据归一化问题是数据挖掘中特征向量表达时的重要问题,当不同的特征成列在一起的时候,由于特征本身表达方式的原因而导致在绝对数值上的小数据被大数据“吃掉”的情况,这个时候我们需要做的就是对抽取出来的features vector进行归一化处理&am…

机器学习之归一化处理

1.使用随机森林或PCA等算法进行数据的降维处理 减少无关的维度测算 2.统计错误率,精确率,召回率 修正维度测算的准确率 3.归一化处理 保留所有的特征,但是减少参数的大小(或者是说:减少参数的重要性)为了…

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

数据归一化处理transforms.Normalize() 1. 图像预处理Transforms(主要讲解数据标准化) 1.1 理解torchvision transforms属于torchvision模块的方法,它是常见的图像预处理的方法 在这里贴上别人整理的transforms运行机制&#x…

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

在数据挖掘中,在建模前需要对数据进行预处理,预处理方法包括归一化与标准化,对数据进行缩放。 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) :数据中抽取出来的对结果预测有用的信息。 ●特征的个数就是数据的观测维度 ●特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程, ●特征工程一般包括特征清…