【问题标题】:Update Option of Theano FunctionTheano 函数的更新选项
【发布时间】:2016-03-08 20:11:10
【问题描述】:

我正在使用深度学习的 theano 教程,但我对 theano 函数的更新的工作原理有疑问。无论使用什么参数定义更新,如果任何参数发生更改,它都会采用新值吗?

theano.function( [i],
                 cost,
                 updates = updates,
                 givens = { self.x: trainX[i*self.mbSize: (i+1)*self.mbSize],
                            self.y: trainY[i*self.mbSize: (i+1)*self.mbSize]
                          }
               )

更新定义为

updates = [ (param, param-learnRate*grad)
                    for param, grad in zip(self.params, gradients) ]

这里的 learnRate 不是 theano 变量。我的问题是,如果我在某个时间点更改 learnRate,那么 theano 函数会采用更改后的 learnRate 值还是继续使用旧值?

LearnRate 更改为

LearnRate = LearnRate/10

最初 LearnRate 是 0.05

【问题讨论】:

    标签: theano


    【解决方案1】:

    它将继续使用旧值。

    数字在 python 中是不可变的,因此更改 LearnRate 的值不会影响 updates 列表中使用的值,我猜一旦使用提供的 updates 编译了 theano 函数,它就不可能除非您使用新值再次编译它。

    您可能已经知道,您可以将学习率设为 theano 变量,然后在需要时更改其值。

    这是另一个可能有用的问题,Is there a way to change a function's update list without re-compiling it in Theano?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多