如何在TensorFlow中为CNNs算法开发随机梯度下降优化器?

时间:2017-07-19 05:47:07

标签: python-2.7 tensorflow deep-learning

我在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)

感谢。

1 个答案:

答案 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)