自适应学习率烤宽面条

时间:2016-07-15 17:41:59

标签: theano deep-learning lasagne

我正在使用Lasagne和Theano库来建立我自己的深度学习模型,遵循MNIST的例子。谁能告诉我如何自适应地改变学习率?

2 个答案:

答案 0 :(得分:0)

我建议您查看https://github.com/Lasagne/Lasagne/blob/master/lasagne/updates.py

如果您使用sgd,则可以使用动量项(例如https://github.com/Lasagne/Lasagne/blob/master/lasagne/updates.py#L156)自适应地更改学习率。如果你想制作任何非标准的东西,动量实现会给你足够的提示,让你自己创造类似的东西。

答案 1 :(得分:0)

我认为最好的方法是为您的学习率创建一个theano共享变量,将共享变量传递给更新函数并通过set_value方法进行更改,如下所示:

lr_shared = theano.shared(np.array(0.1, dtype=theano.config.floatX))
updates = lasagne.updates.rmsprop(..., learning_rate=lr_shared)

...

for epoch in range(num_epochs):
    if epoch % 10 == 0:
        lr_shared.set_value(lr_shared.get_value() / 10)

当然你可以改变优化器和if编码,这只是一个例子。