Я использую библиотеку Lasagne и Theano для создания моей собственной модели глубокого обучения, следующей за примером MNIST. Может ли кто-нибудь рассказать мне, как адаптивно изменить скорость обучения?Адаптивная скорость обучения Lasagne
0
A
ответ
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, это просто пример.