BatchNorm、LayerNorm、GroupNorm
BatchNorm、LayerNorm 和 GroupNorm 都是深度学习中常用的归一化方式。
它们通过将输入归一化到均值为 0 和方差为 1 的分布中,来防止梯度消失和爆炸,并提高模型的泛化能力。
1、BatchNorm
一般 CNN 中,卷积层后面会跟一个 BatchNorm 层,减少梯度消失和爆炸,提高模型的稳定性。 更详细的介绍见 : https://www.bilibili.com/video/BV11s4y1c7pg

2、LayerNorm
Transformer block 中会使用到 LayerNorm , 一般输入尺寸形为 :(batch_size, token_num, dim),会在最后一个维度做 归一化: nn.LayerNorm(dim)

3、GroupNorm

GroupNorm 适合用于大模型。当 batch size 过小的时候,就不再适合用 BatchNorm ,可以使用 GroupNorm

比如,Deformable DETR 中,就用到了 GroupNorm

附:LayerNorm 参数num_features 的使用
