SGD
class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=False, *, maximize=False, foreach=None, differentiable=False)
Implements stochastic gradient descent (optionally with momentum).
  \begin{aligned}      &\rule{110mm}{0.4pt}
  \\      &\textbf{input}      : \gamma \text{ (lr)}, \: \theta_0
  \text{ (params)}, \: f(\theta)          \text{ (objective)}, \:
  \lambda \text{ (weight decay)},                          \\
  &\hspace{13mm} \:\mu \text{ (momentum)}, \:\tau \text{
  (dampening)},      \:\textit{ nesterov,}\:\textit{ maximize}
  \\[-1.ex]      &\rule{110mm}{0.4pt}
  \\      &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \:
  \textbf{do}                         \\      &\hspace{5mm}g_t
  \leftarrow   \nabla_{\theta} f_t (\theta_{t-1})           \\
  &\hspace{5mm}\textbf{if} \: \lambda \neq 0
  \\      &\hspace{10mm} g_t \leftarrow g_t + \lambda
  \theta_{t-1}                            \\
