2019年4月6日 星期六

PyTorch - 優化器 - Optimizer

在 ML, DL 中,梯度下降法扮演了重要的角色,在梯度下降過程中調整下降的 step,使得找到的 loss 值不會被侷限在 local minimum ,而是我們想要的 global minimum。
所以在演傳法的開發,從最簡易的 Vanilla SGD ,Momentum, RMSprop 到 Adam,都是為了解決梯度下降的優化過程加入了不同的構想,值得深入了解。
而 PyTorch 使用 Optimizer 非常的容易,都可以在 torch.optim 中找到各種 Optimizer 用法。
選擇優化器同 keras 一樣簡單,一行代碼搞定。

SGD

from torch import optim optimizer = torch.optim.SGD( lr=0.1, momentum=0.9)

RMSprop

torch.optim.RMSprop(model.parameters(), lr=0.01, alpha=0.99, eps=1e-08, weight_decay=0, momentum=0, centered=False)

Adagrad

torch.optim.Adagrad(model.parameters(), lr=0.01, lr_decay=0, weight_decay=0, initial_accumulator_value=0)

Adam

torch.optim.Adam(model.parameters(), lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False)
以上簡單練習幾個常用的 Optimizer。

沒有留言:

張貼留言