19.归一化
2026/8/14 22:26:13 网站建设 项目流程

归一化(Normalization)是指把不同尺度、范围的数据,按一定规则映射到统一、稳定的数值范围或分布,目的是让模型更稳定、更快收敛,也避免某些特征“数值大就主导训练”的问题。

一、直观理解(先有个感觉)

假设你有一张图片:

  • 像素值是 0 ~ 255(uint8)

模型更喜欢这样的输入:

  • 0 ~ 1
  • 或 -1 ~ 1
  • 或均值≈0、方差≈1

归一化就是做这件事的转换过程。

二、常见归一化类型(重点在视觉/AIPipe里)

1)最小–最大归一化(Min-Max Normalization)

公式:

x′=(x−min​)/(max−min)

结果范围:通常是 [0, 1]

例子:

python pythonx = x / 255.0

2)标准归一化(Standardization / Z-score)

公式:x′=(x−μ​)/σ

其中:

  • μ:均值(mean)
  • σ:标准差(std)

结果:

  • 均值 ≈ 0
  • 方差 ≈ 1
  • 不一定固定在某个区间

PyTorch 里很常见:

python pythonnormalize = transforms.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] )

这段代码到底做了什么?

假设输入 x 的形状是 (C, H, W),且已经是 [0, 1] 的 float 张量:

pythonx = (x - mean) / std

逐通道计算:

  • 第 0 通道(R):

x[0] = (x[0] - 0.485) / 0.229

  • 第 1 通道(G):

x[1] = (x[1] - 0.456) / 0.224

  • 第 2 通道(B):

[2] = (x[2] - 0.406) / 0.225

✅ 逐通道独立归一化​

✅ 不改变 H、W,只改变数值分布

为什么是这几个“奇怪的数字”?

这组 mean 和 std 来自 ImageNet 数据集的统计结果

含义是:

  • 先统计整个 ImageNet 所有图片每个通道的像素均值和标准差
  • 然后把这些值“定死”下来
  • 以后所有用 ImageNet 预训练模型(ResNet、MobileNet、ViT 等)都必须用这一组

(ImageNet 是大规模图像数据集,而 ResNet、MobileNet、ViT 是在这个数据集上训练和验证的神经网络模型架构)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询