知了AI学习平台Logo知了
🧠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)逐步衰减,能提升最终精度和收敛稳定性。