Сохранение и загрузка грузов в керасе



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



Код, который я использую для сохранения модели, есть.



TensorBoard(log_dir='/output')
model.fit_generator(image_a_b_gen(batch_size), steps_per_epoch=1, epochs=1)
model.save_weights('model.hdf5')
model.save_weights('myModel.h5')


Дайте мне знать, если это неправильный способ сделать это, или если есть лучший способ сделать это.

Но когда я пытаюсь загрузить их, используя это,



from keras.models import load_model
model = load_model('myModel.h5')


Но я получаю эту ошибку:





ValueError                                Traceback (most recent call 
last)
<ipython-input-7-27d58dc8bb48> in <module>()
1 from keras.models import load_model
----> 2 model = load_model('myModel.h5')

/home/decentmakeover2/anaconda3/lib/python3.5/site-
packages/keras/models.py in load_model(filepath, custom_objects, compile)
235 model_config = f.attrs.get('model_config')
236 if model_config is None:
--> 237 raise ValueError('No model found in config file.')
238 model_config = json.loads(model_config.decode('utf-8'))
239 model = model_from_config(model_config,
custom_objects=custom_objects)

ValueError: No model found in config file.


Какие-нибудь предложения о том, что я могу делать неправильно?
Заранее спасибо.

531   2  

2 ответов:

Вот видео на YouTube, которое точно объясняет, что вы хотите сделать: сохраните и загрузите модель Keras

Существует три различных метода сохранения, которые предоставляет Керас. Они описаны в видеосвязи выше (с примерами), а также ниже. Во-первых, причина, по которой вы получаете ошибку, заключается в том, что вы неправильно вызываете load_model.

Для сохранения и загрузки Весов модели сначала следует использовать

model.save_weights('my_model_weights.h5')

Чтобы сохранить веса, как вы и показали. Чтобы загрузить веса, вам сначала нужно построить свою модель, а затем вызвать load_weights на модели, как в

model.load_weights('my_model_weights.h5')
Другой метод экономии-это model.save(filepath). Эта функция save сохраняет:
    Архитектура модели, позволяющая воссоздать модель.
  • веса модели.
  • конфигурация обучения (потеря, оптимизатор).
  • состояние оптимизатора, позволяющее возобновить тренировку именно там, где вы ее оставили прочь.

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

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

Наконец, model.to_json(), сохраняет только архитектуру модели. Чтобы загрузить архитектуру, вы должны использовать

from keras.models import model_from_json
model = model_from_json(json_string)

Для загрузки Весов Сначала нужно иметь модель. Это должно быть:

existingModel.save_weights('weightsfile.h5')
existingModel.load_weights('weightsfile.h5')     

Если вы хотите сохранить и загрузить всю модель (часто это не работает, и я не знаю, почему):

model.save_model('filename')
model = load_model('filename')

Comments

    Ничего не найдено.