2016-07-15 11 views
0

Я использую библиотеку Lasagne и Theano для создания моей собственной модели глубокого обучения, следующей за примером MNIST. Может ли кто-нибудь рассказать мне, как адаптивно изменить скорость обучения?Адаптивная скорость обучения Lasagne

ответ

0

Я рекомендую взглянуть на https://github.com/Lasagne/Lasagne/blob/master/lasagne/updates.py.

Если вы используете sgd, то вы можете использовать импульс (например, https://github.com/Lasagne/Lasagne/blob/master/lasagne/updates.py#L156) для адаптивного изменения скорости обучения. Если вы хотите сделать что-то нестандартное, реализация импульса даст вам достаточно намеков о том, как создать что-то подобное по своему усмотрению.

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, это просто пример.