-
torch.optim.Adam
是一个实现 Adam 优化算法的类。 - Adam 是一个常用的梯度下降优化方法,特别适合处理大规模数据集和参数的深度学习模型
torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False, *, foreach=None, maximize=False, capturable=False, differentiable=False, fused=None)
params | 待优化参数的可迭代对象,或定义参数组的字典 |
lr | 学习率,默认为 1e-3 |
betas | 用于计算梯度及其平方的移动平均的系数,默认为 (0.9, 0.999) |
eps | 为了提高数值稳定性而添加到分母的项,默认为 1e-8 |
weight_decay | 权重衰减(L2惩罚),默认为 0 |
amsgrad | 是否使用 AMSGrad 变种,该变种来源于论文 "On the Convergence of Adam and Beyond",默认为 False |
foreach | 是否使用优化器的 foreach 实现。默认情况下,如果未指定,则在 CUDA 上尝试使用 foreach 而不是循环实现,因为它通常性能更好。 |
maximize | 是否最大化目标函数,默认为 False(即最小化目标函数) |
differentiable | 训练中的优化器步骤是否可以进行自动微分。否则,step() 函数将在 torch.no_grad() 上下文中运行。如果不打算通过此实例运行自动微分,请将其设置为 False,默认为 False。 |
fused | 是否使用融合实现(仅限 CUDA)。目前支持 torch.float64、torch.float32、torch.float16 和 torch.bfloat16,默认为 None。 |