20.10 Créer des réseaux de neurones avec Keras et TensorFlow : utiliser des rappels et enregistrer des modèles

Le développement de réseaux de neurones via des bibliothèques telles que Keras et TensorFlow a considérablement simplifié le processus de création et de formation de modèles de Deep Learning. Keras, une API de haut niveau qui s'exécute sur TensorFlow, permet aux utilisateurs de créer des réseaux de neurones de manière intuitive et accessible. Un élément clé de ce processus est l'utilisation de rappels et de modèles de sauvegarde, qui sont essentiels pour gérer efficacement la formation et préserver les modèles formés.

Comprendre les rappels dans Keras

Les rappels sont des fonctions qui peuvent être appliquées à différentes étapes de la formation d'un réseau neuronal, par exemple au début et à la fin de chaque époque, avant ou après le traitement d'un lot, ou même après la fin de la formation. Ces fonctions sont des outils puissants pour surveiller les performances du modèle, effectuer des ajustements dynamiques, enregistrer les progrès, modifier les taux d'apprentissage, arrêter prématurément l'entraînement, et bien plus encore.

Utiliser les rappels dans Keras est assez simple. Ils sont passés en arguments dans la fonction fit() du modèle. Keras est livré avec plusieurs rappels prédéfinis, mais vous pouvez également créer vos propres rappels personnalisés.

Rappels les plus courants

  • ModelCheckpoint : ce rappel enregistre le modèle après chaque époque. Vous pouvez le configurer pour enregistrer uniquement le meilleur modèle en fonction d'une mesure de performances spécifique, telle que la précision ou la perte de validation.
  • EarlyStopping : vous permet d'arrêter l'entraînement dès qu'une métrique surveillée cesse de s'améliorer, évitant ainsi le surapprentissage et économisant du temps et des ressources de calcul.
  • ReduceLROnPlateau : réduit le taux d'apprentissage lorsqu'une mesure de performance cesse de s'améliorer, ce qui permet d'affiner plus finement la pondération du réseau neuronal.
  • TensorBoard : intégration avec TensorBoard, un outil de visualisation pour TensorFlow, qui vous permet de surveiller les métriques, de visualiser les graphiques de calcul, les distributions d'activation, etc.

Enregistrement et chargement de modèles

En plus des rappels, il est crucial de savoir comment enregistrer et charger correctement les modèles. Keras propose plusieurs façons de sauvegarder un modèle, notamment l'architecture, les poids et même l'état de l'optimiseur. Ceci est extrêmement utile pour reprendre la formation plus tard ou pour effectuer des inférences dans un environnement de production.

La fonction save() peut être utilisée pour enregistrer un modèle entier dans un seul fichier, qui peut être un fichier HDF5 ou un répertoire TensorFlow SavedModel. Pour charger un modèle enregistré, utilisez simplement la fonction load_model(). De plus, vous pouvez enregistrer uniquement l'architecture du modèle au format JSON ou YAML et les pondérations dans un fichier HDF5 séparément.

Exemple pratique de rappels et de sauvetage

Voyons comment utiliser certaines de ces ressources en pratique. Supposons que nous entraînions un réseau de neurones pour classer des images dans un ensemble de données :

à partir de keras.models, importation séquentielle à partir de keras.layers importer Dense à partir de keras.callbacks, importez ModelCheckpoint, EarlyStopping à partir de keras.datasets importer cifar10 # Chargement et préparation des données (x_train, y_train), (x_test, y_test) = cifar10.load_data() x_train = x_train.astype('float32') / 255 x_test = x_test.astype('float32') / 255 # Construire le modèle modèle = Séquentiel([ Dense(512, activation='relu', input_shape=(32 * 32 * 3,)), Dense(256, activation='relu'), Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', métriques=['précision']) # Configuration des rappels checkpoint = ModelCheckpoint('best_model.h5', save_best_only=True, monitor='val_loss', mode='min') early_stopping = EarlyStopping(monitor='val_loss', patience=5) # Entraîner le modèle historique = model.fit(x_train, y_train, époques = 100, batch_size=64, validation_data=(x_test, y_test), callbacks=[checkpoint, early_stopping])

Dans cet exemple, le rappel ModelCheckpoint est configuré pour enregistrer le meilleur modèle en fonction de la perte de validation. EarlyStopping arrêtera l'entraînement si la perte de validation ne s'améliore pas après cinq époques consécutives. Après la formation, nous pouvons charger le modèle le mieux enregistré en utilisant load_model('best_model.h5').

Considérations finales

L'utilisation de rappels et de modèles de sauvegarde dans Keras est une pratique qui peut améliorer considérablement l'efficience et l'efficacité du processus de formation du réseau neuronal. Avec la possibilité de surveiller les performances, faitesGrâce aux ajustements automatiques et à la préservation de l'état du modèle, les développeurs peuvent se concentrer sur d'autres domaines importants tels que la préparation des données et l'architecture réseau. Keras et TensorFlow proposent une gamme d'outils qui, lorsqu'ils sont bien utilisés, peuvent conduire à des résultats impressionnants dans les projets de Machine Learning et de Deep Learning.

Répondez maintenant à l’exercice sur le contenu :

Laquelle des affirmations suivantes concernant l’utilisation des rappels et l’enregistrement des modèles dans Keras est correcte ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Construire des réseaux de neurones avec Keras et TensorFlow : peaufiner et transférer l'apprentissage

Page suivante de lebook gratuit :

78Construire des réseaux de neurones avec Keras et TensorFlow : peaufiner et transférer l'apprentissage

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte