J'essaie de sauvegarder et de charger des poids à partir du modèle que j'ai formé.
le code que j'utilise pour enregistrer le modèle est.
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')
Faites-moi savoir s'il s'agit d'une façon incorrecte de le faire ou s'il existe un meilleur moyen de le faire.
mais quand j'essaye de les charger, en utilisant ça,
from keras.models import load_model
model = load_model('myModel.h5')
mais j'obtiens cette erreur:
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.
Des suggestions sur ce que je peux faire mal? Merci d'avance.
Voici une vidéo sur YouTube qui explique exactement ce que vous voulez faire: enregistrer et charger un modèle Keras
Keras propose trois méthodes de sauvegarde différentes. Celles-ci sont décrites dans le lien vidéo ci-dessus (avec des exemples), ainsi que ci-dessous.
Premièrement, si vous recevez l'erreur, c'est parce que vous appelez incorrectement load_model
.
Pour enregistrer et charger les poids du modèle, vous devez d’abord utiliser
model.save_weights('my_model_weights.h5')
pour enregistrer les poids, comme vous l'avez affiché. Pour charger les poids, vous devez d’abord construire votre modèle, puis appeler load_weights
sur le modèle, comme dans
model.load_weights('my_model_weights.h5')
Une autre technique de sauvegarde est model.save(filepath)
. Cette fonction save
enregistre:
Pour charger ce modèle enregistré, utilisez les éléments suivants:
from keras.models import load_model
new_model = load_model(filepath)'
Enfin, model.to_json()
, enregistre uniquement l'architecture du modèle. Pour charger l'architecture, vous utiliseriez
from keras.models import model_from_json
model = model_from_json(json_string)
Pour le chargement poids, vous devez d'abord avoir un modèle. Ce doit être:
existingModel.save_weights('weightsfile.h5')
existingModel.load_weights('weightsfile.h5')
Si vous voulez sauvegarder et charger le modèle entier (souvent cela ne fonctionne pas et je ne sais pas pourquoi):
model.save_model('filename')
model = load_model('filename')