Batch Normalization:对一个batch中的每个特征【分别】做归一化
Layer Normalization:【分别】对每个样本中的所有特征做归一化
tensor([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
Batch Normalization Output:
tensor([[-1.2247, -1.2247, -1.2247],
[ 0.0000, 0.0000, 0.0000],
[ 1.2247, 1.2247, 1.2247]], grad_fn=<NativeBatchNormBackward>)
Layer Normalization Output:
tensor([[-1.2247, 0.0000, 1.2247],
[-1.2247, 0.0000, 1.2247],
[-1.2247, 0.0000, 1.2247]], grad_fn=<NativeLayerNormBackward>)
在应用场景上,BN常用于处理批次数据,适用于CNN;LN常用于处理序列数据,适用于RNN和Transformer