[仅参数默认值不一致]torch.cuda.amp.GradScaler

torch.cuda.amp.GradScaler

torch.cuda.amp.GradScaler(init_scale=65536.0, growth_factor=2.0, backoff_factor=0.5, growth_interval=2000, enabled=True)

paddle.amp.GradScaler

paddle.amp.GradScaler(enable=True, init_loss_scaling=65536.0, incr_ratio=2.0, decr_ratio=0.5, incr_every_n_steps=2000, decr_every_n_nan_or_inf=2, use_dynamic_loss_scaling=True)

其中 Paddle 相比 PyTorch 支持更多其他参数且参数默认值不一致,具体如下:

参数映射

PyTorch PaddlePaddle 备注
init_scale init_loss_scaling 初始 loss scaling 因子。与 Pytorch 默认值不同, Paddle 需设为 65536.0。
growth_factor incr_ratio 增大 loss scaling 时使用的乘数。
backoff_factor decr_ratio 减小 loss scaling 时使用的小于 1 的乘数。
growth_interval incr_every_n_steps 连续 n 个 steps 的梯度都是有限值时,增加 loss scaling。与 Pytorch 默认值不同, Paddle 需设为 2000。
enabled enable 是否使用 loss scaling。
- decr_every_n_nan_or_inf 累计出现 n 个 steps 的梯度为 nan 或者 inf 时,减小 loss scaling,PyTorch 无此参数,Paddle 保持默认即可。
- use_dynamic_loss_scaling 是否使用动态的 loss scaling,PyTorch 无此参数,Paddle 保持默认即可。