在 PyTorch 中,归一化层的主要目的是加速训练、提升模型性能并增强稳定性。具体作用如下:
加速训练。归一化层通过减少内部协变量偏移,使输入分布更稳定,从而加快训练速度。
提升模型性能。归一化有助于缓解梯度消失或爆炸问题,使模型更易训练,并可能提高泛化能力。
增强稳定性。归一化使输入数据具有相似的尺度,降低对参数初始化的敏感性,提升训练稳定性。
Batch Normalization (BN),对小批量数据进行归一化,适用于卷积和全连接层。
Layer Normalization (LN),对单个样本的所有特征进行归一化,常用于RNN和Transformer。
Instance Normalization (IN),对每个样本的每个通道单独归一化,多用于风格迁移。
Group Normalization (GN),将通道分组后进行归一化,适合批量较小的场景。
这些归一化层通过标准化输入数据,帮助模型更快收敛并提升性能。