2017-01-20 3 views
0

Когда я сохранить модель в Keras через model.save(filepath) файл будет сохранен, и нет никаких ошибок, хотя, когда я открываю файл это то, что я получаю:Keras модель не спасает

enter image description here

Я поиск в Интернете, и никто, кажется, не имеет этой проблемы. Также у моей консоли нет никаких подробностей. Есть идеи?

+2

Что вы использовали для открытия файла? Его файл HDF5 и, кажется, вы открыли его с помощью текстового редактора. –

ответ

2

Для загрузки использовать модель это

from keras.models import load_model 
model = load_model(filepath) 

Вы можете найти более подробную документацию here

+0

К сожалению, это не работает для меня. model.save (...) сохраняет 3 файла с расширениями meta, index и data, и когда я пытаюсь загрузить_модель, он говорит, что файл не найден. – rajkiran

+0

С кодом, чтобы воспроизвести ошибку, мы могли бы оказаться в нищенском положении, чтобы помочь :) Можете ли вы опубликовать новый вопрос? –

+0

спасибо за ответ. Сейчас проблема решена. Я сделал ошибку новичков - я смешивал tflearn и keras. Keras save & load работает для меня. – rajkiran

3

Чтобы сохранить модель

# serialize model to JSON 
model_json = model.to_json() 
with open("model.json", "w") as json_file:    
    json_file.write(model_json) 

# serialize weights to HDF5 
model.save_weights("model.h5") 
print("Saved model to disk") 

Чтобы загрузить модель

from keras.models import load_model 
model.load_weights("model.h5") 
1

Здесь это видео YouTube, в котором объясняется, что именно вы хотите: Save and load a Keras model

Существует три различных метода сохранения, которые Keras предоставляет. Они описаны в видеосвязи выше (с примерами), а также ниже.

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

Вы использовали правильную функцию model.save(filepath). Эта функция сохранения сохраняет:

  • Архитектура модели, позволяющая воссоздать модель.
  • Вес модели.
  • Конфигурация обучения (потеря, оптимизатор).
  • Состояние оптимизатора, позволяющее возобновить обучение именно там, где вы остановились.

Чтобы загрузить эту сохраненную модель, можно использовать следующее:

from keras.models import load_model 
    new_model = load_model(filepath) 

Если вы просто использовали model.to_json(), вы будете экономить только архитектуру модели. Кроме того, если вы использовали model.save_weights(), вы бы только сохранили вес модели. При использовании обеих этих альтернативных методов экономии вы не сохранили бы конфигурацию обучения (потеря, оптимизатор) и не сохранили бы состояние оптимизатора.

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