19.归一化

📅 2026/8/14 22:26:19
19.归一化
归一化Normalization是指把不同尺度、范围的数据按一定规则映射到统一、稳定的数值范围或分布目的是让模型更稳定、更快收敛也避免某些特征“数值大就主导训练”的问题。一、直观理解先有个感觉假设你有一张图片像素值是 0 ~ 255uint8模型更喜欢这样的输入0 ~ 1或 -1 ~ 1或均值≈0、方差≈1归一化就是做这件事的转换过程。二、常见归一化类型重点在视觉/AIPipe里1最小–最大归一化Min-Max Normalization公式x′(x−min​)/(max−min)结果范围通常是 [0, 1]例子python pythonx x / 255.02标准归一化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 通道Rx[0] (x[0] - 0.485) / 0.229第 1 通道Gx[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 是在这个数据集上训练和验证的神经网络模型架构)