【发布时间】:2016-11-19 00:36:16
【问题描述】:
我正在使用 Lasagne 和 Theano 库按照 MNIST 示例构建我自己的深度学习模型。谁能告诉我如何自适应地改变学习率?
【问题讨论】:
标签: theano deep-learning lasagne
我正在使用 Lasagne 和 Theano 库按照 MNIST 示例构建我自己的深度学习模型。谁能告诉我如何自适应地改变学习率?
【问题讨论】:
标签: theano deep-learning lasagne
我建议看看https://github.com/Lasagne/Lasagne/blob/master/lasagne/updates.py。
如果您使用的是 sgd,那么您可以使用动量项(例如 https://github.com/Lasagne/Lasagne/blob/master/lasagne/updates.py#L156)来自适应地改变学习率。如果您想制作非标准的东西,动量实现会为您提供足够的提示,告诉您如何自行创建类似的东西。
【讨论】:
我认为最好的方法是为你的学习率创建一个 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 代码,这只是一个例子。
【讨论】: