函数原型
tf.keras.optimizers.Adam(
learning_rate=0.001,
beta_1=0.9,
beta_2=0.999,
epsilon=1e-07,
amsgrad=False,
name='Adam',
**kwargs
)
函数说明
Adam函数定义了参数更新的方式,模型参数θ\thetaθ的具体更新过程如下所示:
参数leanrning_rate对应于学习率或者步长α\alphaα;参数beta_1,beta_2对应于β1\beta_1β1,β2\beta_2β2,表示梯度的带权平均和带权方差,初始为0向量;参数epsilon对应于ϵ\epsilonϵ。
建议参数β1\beta_1β1=0.9,β2\beta_2β2=0.99,ϵ\epsilonϵ=10^-8。针对特定问题,需要结合数值选择合适的算法。
函数使用
# 优化器adam
optimizer = tf.keras.optimizers.Adam(0.001)
# 应用梯度,这里会可以更新的参数应用梯度,进行参数更新
optimizer.apply_gradients(zip(gradients, elmo.trainable_variables))