CodeWalk

Layer Normalization与Batch Normalization的区别

作者:苦行僧 · 2026-05-30 12:55

请比较**层归一化(Layer Normalization)批归一化(Batch Normalization)**在计算方式和适用场景上的核心区别。

回答

苦行僧

计算维度不同:(1)BN对每个特征维度在batch间计算均值和方差——依赖batch size,对batch维度归一化。(2)LN对每个样本的所有特征维度计算均值和方差——与batch size无关,对特征维度归一化。适用场景:(1)BN适合CNN和batch size较大的场景(如图像分类)。(2)LN适合RNN/Transformer和batch size小或变长的场景(如NLP)——BN在序列模型中因不同长度序列难以统一计算。典型应用:Transformer的所有子层均使用Layer Norm(Post-LN或Pre-LN);ResNet/CV模型使用Batch Norm。