[ torch 参数更多 ]torch.optim.AdamW

torch.optim.AdamW

torch.optim.AdamW(params,
                lr=0.001,
                betas=(0.9, 0.999),
                eps=1e-08,
                weight_decay=0.01,
                amsgrad=False,
                maximize=False,
                foreach=None,
                capturable=False,
                differentiable=False,
                fused=None)

paddle.optimizer.AdamW

paddle.optimizer.AdamW(learning_rate=0.001,
                    beta1=0.9,
                    beta2=0.999,
                    epsilon=1e-08,
                    parameters=None,
                    weight_decay=0.01,
                    lr_ratio=None,
                    apply_decay_param_fun=None,
                    grad_clip=None,
                    name=None,
                    lazy_mode=False,
                    multi_precision=False,)

PyTorch 相比 Paddle 支持更多其他参数,具体如下:

参数映射

PyTorch PaddlePaddle 备注
params parameters 表示指定优化器需要优化的参数,仅参数名不一致。
lr learning_rate 学习率,用于参数更新的计算。仅参数名不一致。
betas beta1、beta2 一阶矩估计的指数衰减率。PyTorch 为元祖形式,Paddle 为分开的两个参数。默认值分别一致。
eps epsilon 保持数值稳定性的短浮点类型值。仅参数名不一致。
weight_decay weight_decay 表示权重衰减系数。参数名和默认值均一致。
amsgrad - 是否使用该算法的 AMSGrad 变体。Paddle 无此参数,暂无转写方式。
maximize - 根据目标最大化参数,而不是最小化。Paddle 无此参数,暂无转写方式。
foreach - 是否使用优化器的 foreach 实现。Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。
capturable - 在 CUDA 图中捕获此实例是否安全。Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。
differentiable - 是否应通过训练中的优化器步骤进行自动微分。Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。
fused - 是否使用融合实现(仅限 CUDA)。Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。
- lr_ratio 传入函数时,会为每个参数计算一个权重衰减系数,并使用该系数与学习率的乘积作为新的学习率。PyTorch 无此参数,Paddle 保持默认即可。
- apply_decay_param_fun 传入函数时,只有可以使 apply_decay_param_fun(Tensor.name)==True 的 Tensor 会进行 weight decay 更新。PyTorch 无此参数,Paddle 保持默认即可。
- grad_clip 梯度裁剪的策略。 PyTorch 无此参数,Paddle 保持默认即可。
- lazy_mode 设为 True 时,仅更新当前具有梯度的元素。PyTorch 无此参数,Paddle 保持默认即可。
- multi_precision 在基于 GPU 设备的混合精度训练场景中,该参数主要用于保证梯度更新的数值稳定性。PyTorch 无此参数,Paddle 保持默认即可。