###### tags: `PyTorch` # PyTorch - 優化器 - Optimizer 在 ML, DL 中,梯度下降法扮演了重要的角色,在梯度下降過程中調整下降的 step,使得找到的 loss 值不會被侷限在 local minimum ,而是我們想要的 global minimum。 所以在演傳法的開發,從最簡易的 Vanilla SGD ,Momentum, RMSprop 到 Adam,都是為了解決梯度下降的優化過程加入了不同的構想,值得深入了解。 而 PyTorch 使用 Optimizer 非常的容易,都可以在 [torch.optim](https://pytorch.org/docs/stable/optim.html) 中找到各種 Optimizer 用法。 選擇優化器同 keras 一樣簡單,一行代碼搞定。 ## SGD ```python= from torch import optim optimizer = torch.optim.SGD( lr=0.1, momentum=0.9) ``` ## **RMSprop** ```python= torch.optim.RMSprop(model.parameters(), lr=0.01, alpha=0.99, eps=1e-08, weight_decay=0, momentum=0, centered=False) ``` ## **Adagrad** ```python= torch.optim.Adagrad(model.parameters(), lr=0.01, lr_decay=0, weight_decay=0, initial_accumulator_value=0) ``` ## **Adam** ```python= torch.optim.Adam(model.parameters(), lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False) ``` 以上簡單練習幾個常用的 Optimizer。