BatchNorm、LayerNorm、GroupNorm
BatchNorm、LayerNorm 和 GroupNorm 都是深度學習中常用的歸一化方式。
它們通過將輸入歸一化到均值為 0 和方差為 1 的分布中,來防止梯度消失和爆炸,并提高模型的泛化能力。
1、BatchNorm
一般 CNN 中,卷積層后面會跟一個 BatchNorm 層,減少梯度消失和爆炸,提高模型的穩(wěn)定性。?更詳細的介紹見 : 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 參數(shù)num_features 的使用

標簽: