看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()
