You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义训练循环中Adam优化器是否能正常生效、是否退化为普通梯度下降

自定义训练循环中Adam优化器的生效情况

你编写的自定义训练循环里,Adam优化器可以完全正常生效,不会退化为普通单步梯度下降。

你不需要手动编写历史梯度记录的相关代码,Adam依赖的一阶动量、二阶动量累积,以及偏置校正逻辑,全部封装在Keras的Adam优化器内部,由优化器自身维护状态。你每次调用optimizer.apply_gradients(zip(grads, model.trainable_weights))更新参数时,优化器会自动更新对应每个可训练参数的动量累积变量,全程不需要用户额外干预。

你贴出的示例代码写法完全正确,仅将原示例的SGD替换为Adam后,Adam的全部特性都会正常生效,效果和调用model.fit()使用Adam优化器完全一致。只要你没有在每次批次/epoch迭代时重新实例化Adam优化器,优化器的状态就会持续累积,不会被重置。如果你想验证这一点,可以在调用apply_gradients前后打印optimizer.variables(),就能看到内部存储的历史动量值在每步迭代后都会发生更新。

内容的提问来源于stack exchange,提问作者Jean-Philippe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 09:36:01