Сохранение и загрузка грузов в keras
Im пытается сохранить и загрузить весы из модели, которую я обучил.
код im, используемый для сохранения модели.
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.
любые предложения о том, что я могу делать неправильно? Заранее спасибо.
2 ответов
вот видео YouTube, которое объясняет, что именно вы хотите сделать:сохранить и загрузить модель Keras
существует три различных метода сохранения, которые 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')