mlx.optimizers.SGD

目录

mlx.optimizers.SGD#

class SGD(learning_rate: float | Callable[[array], array], momentum: float = 0.0, weight_decay: float = 0.0, dampening: float = 0.0, nesterov: bool = False)#

随机梯度下降优化器。

使用梯度 \(g\) 更新参数 \(w\) 如下所示

\[\begin{split}v_{t+1} &= \mu v_t + (1 - \tau) g_t \\ w_{t+1} &= w_t - \lambda v_{t+1}\end{split}\]
参数:
  • learning_rate (floatcallable) – 学习率 \(\lambda\)。

  • momentum (float, 可选) – 动量强度 \(\mu\)。默认值:0

  • weight_decay (float, 可选) – 权重衰减 (L2 惩罚)。默认值:0

  • dampening (float, 可选) – 动量的阻尼 \(\tau\)。默认值:0

  • nesterov (bool, 可选) – 启用 Nesterov 动量。默认值:False

方法

__init__(learning_rate[, momentum, ...])

apply_single(gradient, parameter, state)

执行 SGD 参数更新并将 \(v\) 存储在优化器状态中。

init_single(parameter, state)

初始化优化器状态