Pytorch中一些优化器的使用

it2025-08-04  5

1、torch.nn.optim.Adam()

torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0)[source]

参数:

params (iterable) – 待优化参数的iterable或者是定义了参数组的dictlr (float, 可选) – 学习率(默认:1e-3)betas (Tuple[float, float], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数(默认:0.9,0.999)eps (float, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8)。其实是为了防止除以0的情况。weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认: 0)

 

2、torch.nn.optim.SGD()

torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=False)[source]

参数:

params (iterable) – 待优化参数的iterable或者是定义了参数组的dictlr (float) – 学习率momentum (float, 可选) – 动量因子(默认:0),相当于加入一个惯性,有利于发现损失函数最小的点,大都设为0.9weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认:0),为了抑制过拟合。dampening (float, 可选) – 动量的抑制因子(默认:0)nesterov (bool, 可选) – 使用Nesterov动量(默认:False)

nesterov介绍:

Nesterov Momentum实际上是拿着上一步的速度先走一小步,再看当前的梯度然后再走一步。 Nesterov Momentum 与 普通Momentum 的区别:

最新回复(0)