Comment puis-je utiliser tf.keras.les rappels.ModelCheckpoint dans Keras Tuner?

0

La question

Je tiens donc à utiliser tf.keras.les rappels.ModelCheckpoint dans Keras Tuner, mais La façon dont vous choisissez le chemin où enregistrer les points de contrôle, il ne vous permet pas de l'enregistrer comme un fichier avec un nom, un nom associé à l'ouverture du procès et de l'exécution de ce point de contrôle, associé uniquement à une époque.

C'est, si j'ai simplement mis ce rappel à la Keras Tuner, au moment où les points de contrôle enregistrer arrive, à la fin, je ne sais pas comment faire pour associer les points de contrôle enregistrées dans un procès et le procès d'exécution, seulement à l'époque.

1

La meilleure réponse

0

Vous pouvez utiliser tf.keras.callbacks.ModelCheckpoint pour Keras tuner de la même manière que celle utilisée dans d'autres modèle pour enregistrer les points de contrôle.

Après la formation, le modèle avec le hyperparameters obtenu à partir de la recherche par ce modèle, vous pouvez définir un modèle de points de contrôle et l'enregistrer en tant que ci-dessous:

hypermodel = tuner.hypermodel.build(best_hps)

# Retrain the model
hypermodel.fit(img_train, label_train, epochs=best_epoch, validation_split=0.2)

import os
checkpoint_path = "training_1/cp.ckpt"
checkpoint_dir = os.path.dirname(checkpoint_path)

# Create a callback that saves the model's weights
cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,
                                                 save_weights_only=True,
                                                 verbose=1)
history = hypermodel.fit(img_train, label_train, epochs=5, validation_split=0.2, callbacks=[cp_callback])
os.listdir(checkpoint_dir)

# Re-evaluate the model
loss, acc = hypermodel.evaluate(img_test, label_test, verbose=2)
print("Restored model, accuracy: {:5.2f}%".format(100 * acc))

# Loads the weights
hypermodel.load_weights(checkpoint_path)

# Re-evaluate the model
loss, acc = hypermodel.evaluate(img_test, label_test, verbose=2)
print("Restored model, accuracy: {:5.2f}%".format(100 * acc))

Veuillez consulter ce lien pour plus d'inofrmation sur enregistrer et charger un modèle de points de contrôle.

2021-12-06 16:04:19

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................