Pour enregistrer un modèle dans Keras, quelles sont les différences entre les fichiers de sortie de:
model.save()
model.save_weights()
ModelCheckpoint()
dans le rappelLe fichier enregistré à partir de model.save()
est plus grand que le modèle à partir de model.save_weights()
, mais significativement plus grand qu'un fichier d'architecture de modèle JSON ou Yaml. Pourquoi est-ce?
Pour reformuler ceci: pourquoi la taille (model.save ()) + size (quelque chose) = size (model.save_weights ()) + size (model.to_json ()), qu'est-ce que ce "quelque chose"?
Serait-il plus efficace de simplement model.save_weights()
et model.to_json()
, et de charger à partir de ceux-ci que de simplement faire model.save()
et load_model()
?
Quelles sont les différences?
save()
enregistre les poids et la structure du modèle dans un seul fichier HDF5
. Je pense que cela inclut également des choses comme l'état de l'optimiseur. Ensuite, vous pouvez utiliser ce fichier HDF5 avec load()
pour reconstruire l'ensemble du modèle, y compris les poids.
save_weights()
enregistre uniquement les poids sur HDF5 et rien d'autre. Vous avez besoin de code supplémentaire pour reconstruire le modèle à partir d'un fichier JSON
.