Theano продолжить обучение

Я ищу несколько советов о том, как продолжить обучение в theano. Например, у меня есть следующее:

classifier = my_classifier()

cost = ()
updates = []
train_model = theano.function(...)
eval_model = theano.function(...)

best_accuracy = 0
while (epoch < n_epochs):

    train_model()

    current_accuracy = eval_model()
    if current_accuracy > best_accuracy:
        save classifier or save theano functions?
        best_accuracy = current_accuracy
    else:
        load saved classifier or save theano functions?
        if we saved classifier previously, do we need to redefine train_model and eval_model functions?

    epoch+=1

#training is finished
save classifier

Я хочу сохранить текущую обученную модель, если она имеет более высокую точность, чем ранее обученные модели, и загрузить сохраненную модель позже, если точность текущей обученной модели ниже, чем наилучшая точность.

Мои вопросы:

При сохранении следует сохранять классификатор или те анано функции?

Если классификатор нужно сохранить, нужно ли мне переопределять функции theano при его загрузке, так как классификатор изменился.

Спасибо,


person user200340    schedule 24.07.2015    source источник
comment
Вот пример повторного использования сохраненной модели для прогнозирования. С небольшими изменениями вы можете использовать это для продолжения обучения: github.com/lisa-lab/DeepLearningTutorials/blob/master/code/   -  person nouiz    schedule 03.08.2015


Ответы (1)


При травлении моделей всегда лучше сохранить параметры, а при загрузке воссоздать общую переменную и перестроить из нее график. Это позволяет переключать устройство между процессором и графическим процессором.

Но вы можете замариновать функции Theano. Если вы это сделаете, одновременно обработайте все связанные функции. В противном случае у каждого из них будет отдельная копия общей переменной. Каждый вызов load () будет создавать новую общую переменную, если они были маринованы. Это ограничение рассола.

person nouiz    schedule 03.08.2015