###### 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。