当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.ndarray.op.sgd_mom_update用法及代码示例


用法:

mxnet.ndarray.op.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.op.sgd_mom_update。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。