梯度缩放
如果特定op的正向传递具有浮点16输入,则该op的反向传递将产生浮点16梯度。具有小幅度的梯度值可能无法在浮点16中表示。这些值将刷新为零(“下溢”),因此相应参数的更新将丢失。
为了防止下溢,"梯度缩放"将网络的损失(es)乘以比例因子,并调用缩放损失(es)的反向传递。然后,通过网络向后流动的梯度将按相同的系数缩放。换句话说,梯度值的幅度更大,因此它们不会刷新为零。
在优化器更新参数之前,每个参数的梯度(.grad属性)都应取消缩放,因此缩放因子不会干扰学习速率。
使用
https://zhuanlan.zhihu.com/p/165152789