Theano功能的更新选项

时间:2016-03-07 06:39:42

标签: theano

我正在使用深度学习的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

1 个答案:

答案 0 :(得分:2)

它将继续使用旧值。

数字在python中是不可变的,因此更改LearnRate的值不会影响updates列表中使用的值,我想一旦使用提供的{编译了theano函数{1}}除非您使用新值再次编译它,否则无法更改。

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

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