用法:
class mxnet.optimizer.Adam(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, lazy_update=True, **kwargs)
- beta1:(
float
,
optional
) - 一階矩估計的 index 衰減率。 - beta2:(
float
,
optional
) - 二階矩估計的 index 衰減率。 - epsilon:(
float
,
optional
) - 小值以避免除以 0。 - lazy_update:(
bool
,
optional
) - 默認為真。如果為 True,如果 weight 和 grad 的存儲類型都是,則應用延遲更新row_sparse
.
- beta1:(
參數:
基礎:
mxnet.optimizer.optimizer.Optimizer
亞當優化器。
此類實現
Adam: A Method for Stochastic Optimization
中說明的優化器,可在 http://arxiv.org/abs/1412.6980 獲得。如果 grad 的存儲類型是
row_sparse
, 和lazy_update
是真的,懶惰更新在步驟 t 應用:for row in grad.indices: rescaled_grad[row] = clip(grad[row] * rescale_grad + wd * weight[row], clip_gradient) m[row] = beta1 * m[row] + (1 - beta1) * rescaled_grad[row] v[row] = beta2 * v[row] + (1 - beta2) * (rescaled_grad[row]**2) lr = learning_rate * sqrt(1 - beta1**t) / (1 - beta2**t) w[row] = w[row] - lr * m[row] / (sqrt(v[row]) + epsilon)
延遲更新僅更新其 row_sparse 梯度索引出現在當前批次中的權重的均值和 var,而不是為所有索引更新它。與原始更新相比,它可以為某些應用程序提供模型訓練吞吐量的較大改進。但是,它提供的語義與原始更新略有不同,並可能導致不同的經驗結果。
否則,通過以下方式應用步驟 t 的標準更新:
rescaled_grad = clip(grad * rescale_grad + wd * weight, clip_gradient) m = beta1 * m + (1 - beta1) * rescaled_grad v = beta2 * v + (1 - beta2) * (rescaled_grad**2) lr = learning_rate * sqrt(1 - beta1**t) / (1 - beta2**t) w = w - lr * m / (sqrt(v) + epsilon)
除了
Optimizer
有關更新算法的詳細信息,請參閱
adam_update
相關用法
- Python mxnet.optimizer.Adamax用法及代碼示例
- Python mxnet.optimizer.AdaDelta用法及代碼示例
- Python mxnet.optimizer.AdaGrad用法及代碼示例
- Python mxnet.optimizer.Ftrl用法及代碼示例
- Python mxnet.optimizer.register用法及代碼示例
- Python mxnet.optimizer.Signum用法及代碼示例
- Python mxnet.optimizer.SGD用法及代碼示例
- Python mxnet.optimizer.FTML用法及代碼示例
- Python mxnet.optimizer.Optimizer.create_optimizer用法及代碼示例
- Python mxnet.optimizer.Optimizer.register用法及代碼示例
- Python mxnet.optimizer.create用法及代碼示例
- Python mxnet.symbol.op.broadcast_logical_xor用法及代碼示例
- Python mxnet.test_utils.get_zip_data用法及代碼示例
- Python mxnet.ndarray.op.uniform用法及代碼示例
- Python mxnet.symbol.op.log_softmax用法及代碼示例
- Python mxnet.symbol.space_to_depth用法及代碼示例
- Python mxnet.ndarray.op.sample_negative_binomial用法及代碼示例
- Python mxnet.ndarray.NDArray.ndim用法及代碼示例
- Python mxnet.module.BaseModule.get_outputs用法及代碼示例
- Python mxnet.module.BaseModule.forward用法及代碼示例
注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.optimizer.Adam。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。