2015-07-24 5 views
0

Я искал некоторые предложения о том, как продолжить обучение в Anano. Например, у меня есть следующий: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?

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

Спасибо,

+0

Существует пример повторного использования сохраненной модели для выполнения некоторого предсказания. С некоторыми небольшими изменениями вы можете использовать это, продолжайте обучение: https://github.com/lisa-lab/DeepLearningTutorials/blob/master/code/logistic_sgd.py#L444 – nouiz

ответ

0

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

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

Смежные вопросы