我在CNNs中使用TensorFlow库,python。
我想为CNNs优化器开发一个随机梯度下降优化器,其参数如下:
learning rate = 0.05,
decay = 1e-6,
Nesterov momentum 0.9
我想知道如何更改代码以实现这一目标。这是我到目前为止的代码:
optimizer = tf.train.AdamOptimizer(learning_rate=0.05).minimize(cost)
感谢。
答案 0 :(得分:1)
这可以通过使用MomentumOptimizer(https://www.tensorflow.org/api_docs/python/tf/train/MomentumOptimizer)和指数衰减(https://www.tensorflow.org/versions/r0.12/api_docs/python/train/decaying_the_learning_rate)轻松完成:
global_step = tf.Variable(0, trainable=False)
starter_learning_rate = 0.05
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,
1000, 0.96, staircase=True)
optimizer = tf.train.MomentumOptimizer(learning_rate=learning_rate, momentum=0.9, use_nesterov=True).minimize(cost, global_step=global_step)