🧠AI 冷知识
你知道吗?
这些有趣的 AI 小知识可能让你大吃一惊
🎛️
零梯度之谜每个batch前必须调用optimizer.zero_grad(),否则梯度会累加。这个"累加"特性其实不是bug而是feature——它让你可以用多个小batch模拟一个大batch的梯度,是梯度累积(gradient accumulation)技术的原理基础。
一句话总结
💡
优化器(如 SGD/Adam)根据梯度按策略更新参数,标准训练循环包括前向、算损失、反向、更新四步。
常见误区
这些坑别踩
✗
误区 1
Adam 一定比 SGD 效果好。
✓
正确理解
Adam 收敛快但对调参敏感,SGD+动量在许多任务(如 CV)泛化更好,没有绝对优劣。
✗
误区 2
optimizer.step() 前不需要 zero_grad()。
✓
正确理解
梯度默认累加,不清零会导致用旧梯度更新,方向错误。
✗
误区 3
学习率固定不变最好。
✓
正确理解
常用学习率调度(如 cosine、warmup)逐步衰减,能提升最终精度和收敛稳定性。