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


Python mxnet.ndarray.op.sgd_update用法及代碼示例


用法:

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

參數

  • weight(NDArray) - 重量
  • grad(NDArray) - 坡度
  • lr(float, required) - 學習率
  • 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,則應用延遲更新。
  • out(NDArray, optional) - 輸出 NDArray 來保存結果。

返回

out- 此函數的輸出。

返回類型

NDArray 或 NDArray 列表

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

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

weight = weight - learning_rate * (gradient + wd * weight)

但是,如果梯度為row_sparse 存儲類型且lazy_update 為True,則僅更新索引出現在grad.indices 中的行切片:

for row in gradient.indices:
    weight[row] = weight[row] - learning_rate * (gradient[row] + wd * weight[row])

相關用法


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