跳转至

训练技巧

BatchNorm / Dropout / 混合精度 / 学习率调度

归一化层

类型 适用场景 特点
BatchNorm CNN 依赖 batch size,推理用 running mean
LayerNorm Transformer / RNN 不依赖 batch size,LLM 默认
GroupNorm 小 batch CNN 分组归一化
RMSNorm LLM LayerNorm 简化版,省计算

正则化

  • Dropout — 随机失活,集成视角解释
  • DropConnect — 权重随机失活
  • Stochastic Depth — 随机跳过残差块

学习率调度

策略 特点
StepLR 阶梯式衰减
CosineAnnealingLR 余弦退火,平滑衰减
OneCycleLR 超收敛,先升后降
Warmup + Decay Transformer 常用:先热身再衰减

混合精度训练

  • torch.cuda.amp.autocast — 自动 FP16/FP32 混合
  • torch.cuda.amp.GradScaler — 梯度缩放防止下溢
  • 速度提升 ~2x,显存减少 ~50%

练习

  • 对比有/无 BatchNorm 的训练收敛速度
  • 实现混合精度训练,对比速度和精度
  • 对比 CosineAnnealing 和 OneCycleLR 的效果

资源

资源 链接
PyTorch AMP 文档 https://pytorch.org/docs/stable/amp.html
PyTorch LR Scheduler https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate