-
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。 |