看pytorch中文文档摘抄的笔记。
class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=False)[source]
实现随机梯度下降算法(momentum可选)。
Nesterov动量基于On the importance of initialization and momentum in deep learning中的公式.
参数:
- params (iterable) – 待优化参数的iterable或者是定义了参数组的dict
- lr (
float
) – 学习率 - momentum (
float
, 可选) – 动量因子(默认:0) - weight_decay (
float
, 可选) – 权重衰减(L2惩罚)(默认:0) - dampening (
float
, 可选) – 动量的抑制因子(默认:0) - nesterov (
bool
, 可选) – 使用Nesterov动量(默认:False)
例子:
>>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
>>> optimizer.zero_grad()
>>> loss_fn(model(input), target).backward()
>>> optimizer.step()