当前位置:网站首页>13. Enregistrement et chargement des modèles

13. Enregistrement et chargement des modèles

2022-07-08 00:54:00 Booze - J

Nous gardons3.MNISTClassification des ensembles de donnéesExemple de modèle de formation,Pour démontrer l'enregistrement et le chargement du modèle.

La première façon d'enregistrer et de charger le modèle

1.Enregistrer par

Pour sauvegarder un modèle, il suffit de l'ajouter après l'entraînement du modèle

# Enregistrer le modèle La structure et les paramètres du modèle peuvent être sauvegardés simultanément
model.save("model.h5")  # HDF5Documentation,pip install h5py

Cette méthode d'enregistrement permet d'enregistrer à la fois la structure et les paramètres du modèle.

2.Mode de chargement

Importer avant de charger le modèleload_modelMéthodes

from keras.models import load_model

Et le Code chargé est une simple phrase:

# Charger le modèle 
model = load_model("../model.h5")

Cette méthode de chargement peut charger à la fois la structure et les paramètres du modèle.

La deuxième façon d'enregistrer et de charger le modèle

1.Enregistrer par

Les paramètres du modèle sont stockés séparément de la structure du modèle :

# Enregistrer les paramètres
model.save_weights("my_model_weights.h5")
#  Enregistrer la structure du réseau 
json_string = model.to_json()

2.Mode de chargement

Avant de charger la structure du modèle ,Doit être importé en premiermodel_from_json()Méthodes

from keras.models import model_from_json

Charger les paramètres du réseau et la structure du réseau respectivement :

#  Paramètres de chargement 
model.load_weights("my_model_weights.h5")
#  Charger la structure du modèle 
model = model_from_json(json_string)

Recyclage des modèles

La plate - forme d'exécution du Code est jupyter-notebook, Bloc de code dans l'article ,C'est comme ça.jupyter-notebook Écrit dans l'ordre de division , Exécuter le Code de l'article , Fixation directe des sous - unités jupyter-notebookC'est tout..

En fait, le modèle peut être recyclé après le chargement .
1.Importer des bibliothèques tierces

import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense
from keras.models import load_model

2.Chargement des données et prétraitement des données

# Chargement des données
(x_train,y_train),(x_test,y_test) = mnist.load_data()
# (60000, 28, 28)
print("x_shape:\n",x_train.shape)
# (60000,)  Pas encore. one-hotCodage  Vous devez le faire vous - même à l'arrière 
print("y_shape:\n",y_train.shape)
# (60000, 28, 28) -> (60000,784) reshape() Remplissage des paramètres moyens -1 Le résultat du paramètre peut être calculé automatiquement  Divisé par255.0C'est pour la normalisation.
x_train = x_train.reshape(x_train.shape[0],-1)/255.0
x_test = x_test.reshape(x_test.shape[0],-1)/255.0
# Remplacerone hotFormat
y_train = np_utils.to_categorical(y_train,num_classes=10)
y_test = np_utils.to_categorical(y_test,num_classes=10)

3.Recyclage des modèles

# Charger le modèle 
model = load_model("../model.h5")

# Modèle d'évaluation
loss,accuracy = model.evaluate(x_test,y_test)

print("\ntest loss",loss)
print("accuracy:",accuracy)

Résultats des opérations:
Insérer la description de l'image ici
Comparer les modèles enregistrés pour la première fois :
Insérer la description de l'image ici
On constate que la précision du modèle de recyclage sur l'ensemble d'essais est améliorée. .

原网站

版权声明
本文为[Booze - J]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/189/202207072310361252.html