【问题标题】:Adaptive learning rate Lasagne自适应学习率千层面
【发布时间】:2016-11-19 00:36:16
【问题描述】:

我正在使用 Lasagne 和 Theano 库按照 MNIST 示例构建我自己的深度学习模型。谁能告诉我如何自适应地改变学习率?

【问题讨论】:

    标签: theano deep-learning lasagne


    【解决方案1】:

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

    如果您使用的是 sgd,那么您可以使用动量项(例如 https://github.com/Lasagne/Lasagne/blob/master/lasagne/updates.py#L156)来自适应地改变学习率。如果您想制作非标准的东西,动量实现会为您提供足够的提示,告诉您如何自行创建类似的东西。

    【讨论】:

      【解决方案2】:

      我认为最好的方法是为你的学习率创建一个 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 代码,这只是一个例子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-28
        • 1970-01-01
        • 1970-01-01
        • 2017-09-17
        • 2019-01-18
        • 2019-09-30
        • 1970-01-01
        • 2020-10-22
        相关资源
        最近更新 更多