J'ai entraîné un modèle et enregistré les poids à l'aide de ModelCheckpoint :

checkpoint_callback = ModelCheckpoint(
    filepath = checkpoint_prefix,
    save_weights_only = True,
    save_freq = 'epoch')

Pendant la nuit, pendant que mon modèle s'entraînait, l'électricité s'est coupée pendant un certain temps et mon ordinateur s'est éteint. J'ai maintenant ouvert mon notebook Jupyter et je souhaite charger mon modèle sans l'entraîner depuis le début. Comment suis-je censé le faire sans le compiler à nouveau et en utilisant simplement les points de contrôle ? J'ai aussi des rappels tensorboard:

tensorboard_callback = TensorBoard(
    log_dir = 'tensorboard_logs\\'+ model_name,
    histogram_freq = 5,
    write_graph = True,
    update_freq = 'epoch')
0
Yana 12 févr. 2020 à 10:05

1 réponse

Meilleure réponse

Puisque vous n'avez enregistré que les poids de votre modèle, vous devez reconstruire le graphique, puis y charger vos derniers poids de point de contrôle.

Vous devez donc recréer votre modèle et le compiler.
Pour la prochaine fois, si vous souhaitez enregistrer le modèle complet, afin de ne pas avoir à le recompiler à chaque fois que vous le chargez, définissez save_weights_only sur False.
Il vous permet de charger votre modèle avec keras.models.load_model() et de l'adapter directement après.

model = Sequential()
model.add() 
...
model.compile()

Et puis chargez vos poids :

model.load_weights(checkpoint_prefix)

Et ensuite vous pouvez l'utiliser normalement :

model.fit( ... )
1
Thibault Bacqueyrisses 12 févr. 2020 à 11:16