我正在使用Lasagne和Theano库来建立我自己的深度学习模型,遵循MNIST的例子。谁能告诉我如何自适应地改变学习率?
答案 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编码,这只是一个例子。