當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python PyTorch SGD用法及代碼示例

本文簡要介紹python語言中 torch.optim.SGD 的用法。

用法:

class torch.optim.SGD(params, lr=<required parameter>, momentum=0, dampening=0, weight_decay=0, nesterov=False)

參數

  • params(可迭代的) -可迭代的參數以優化或 dicts 定義參數組

  • lr(float) -學習率

  • momentum(float,可選的) -動量因子(默認值:0)

  • weight_decay(float,可選的) -權重衰減(L2 懲罰)(默認值:0)

  • dampening(float,可選的) -動量阻尼(默認值:0)

  • nesterov(bool,可選的) -啟用 Nesterov 動量(默認值:False)

實現隨機梯度下降(可選用動量)。

Nesterov 動量基於公式關於初始化和動量在深度學習中的重要性.

示例

>>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
>>> optimizer.zero_grad()
>>> loss_fn(model(input), target).backward()
>>> optimizer.step()

注意

使用 Momentum/Nesterov 實現的 SGD 與 Sutskever 等人略有不同。人。以及其他一些框架中的實現。

考慮到 Momentum 的具體情況,更新可以寫為

其中 分別表示參數、梯度、速度和動量。

這與 Sutskever 等人形成鮮明對比。人。和其他使用表格更新的框架

Nesterov 版本進行了類似的修改。

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.optim.SGD。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。