Pytorch中一些优化器的使用

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或者是定义了参数组的dict
  • lr (float, 可选) – 学习率(默认:1e-3)
  • betas (Tuple[floatfloat], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数(默认: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或者是定义了参数组的dict
  • lr (float) – 学习率
  • momentum (float, 可选) – 动量因子(默认:0),相当于加入一个惯性,有利于发现损失函数最小的点,大都设为0.9
  • weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认:0),为了抑制过拟合。
  • dampening (float, 可选) – 动量的抑制因子(默认:0)
  • nesterov (bool, 可选) – 使用Nesterov动量(默认:False)

nesterov介绍:

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

Pytorch中一些优化器的使用_第1张图片

你可能感兴趣的:(深度学习,python)