當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python mxnet.ndarray.sgd_mom_update用法及代碼示例


用法:

mxnet.ndarray.sgd_mom_update(weight=None, grad=None, mom=None, lr=_Null, momentum=_Null, wd=_Null, rescale_grad=_Null, clip_gradient=_Null, lazy_update=_Null, out=None, name=None, **kwargs)

參數

  • weight(NDArray) - 重量
  • grad(NDArray) - 坡度
  • mom(NDArray) - 勢頭
  • lr(float, required) - 學習率
  • momentum(float, optional, default=0) - 每個時期動量估計的衰減率。
  • wd(float, optional, default=0) - 權重衰減通過懲罰大權重的正則化項來增強目標函數。懲罰與每個權重大小的平方成比例。
  • rescale_grad(float, optional, default=1) - 將漸變重新縮放為 grad = rescale_grad*grad。
  • clip_gradient(float, optional, default=-1) - 將漸變剪裁到 [-clip_gradient, clip_gradient] 的範圍內 如果clip_gradient <= 0,漸變剪裁被關閉。畢業 = 最大(最小(畢業,clip_gradient),-clip_gradient)。
  • lazy_update(boolean, optional, default=1) - 如果為 true,如果梯度的 stype 為 row_sparse 並且權重和動量具有相同的 stype,則應用延遲更新
  • out(NDArray, optional) - 輸出 NDArray 來保存結果。

返回

out- 此函數的輸出。

返回類型

NDArray 或 NDArray 列表

隨機梯度下降 (SGD) 優化器的動量更新函數。

動量更新在神經網絡上具有更好的收斂速度。從數學上看,它如下所示:

它使用以下方法更新權重:

v = momentum * v - learning_rate * gradient
weight += v

其中參數momentum 是每個時期動量估計的衰減率。

但是,如果 grad 的存儲類型為 row_sparselazy_update 為 True 且權重的存儲類型與動量的存儲類型相同,則僅更新索引出現在 grad.indices 中的行切片(權重和動量):

for row in gradient.indices:
    v[row] = momentum[row] * v[row] - learning_rate * gradient[row]
    weight[row] += v[row]

相關用法


注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.ndarray.sgd_mom_update。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。