Modèles multi-sorties
L’API Functional de Keras permet de créer des modèles complexes avec plusieurs sorties. Cela est particulièrement utile pour les tâches de multi-tâches où le modèle doit produire plusieurs prédictions simultanément. Voici comment vous pouvez utiliser l’API Functional pour créer un modèle qui produit plusieurs sorties.
Étape 1 : Importer les modules nécessaires
Commencez par importer les modules nécessaires de TensorFlow et Keras.
import tensorflow as tffrom tensorflow.keras.models import Modelfrom tensorflow.keras.layers import Input, Dense
Étape 2 : Définir les entrées
Utilisez la classe Input
pour définir les entrées du modèle. Vous pouvez spécifier la forme des données d’entrée.
# Définir une entrée de forme (32,)input_layer = Input(shape=(32,))
Étape 3 : Définir les couches partagées
Ajoutez des couches partagées qui seront utilisées pour produire les différentes sorties.
# Ajouter une couche dense avec 64 unités et activation ReLUx = Dense(units=64, activation='relu')(input_layer)
# Ajouter une autre couche dense avec 64 unités et activation ReLUx = Dense(units=64, activation='relu')(x)
Étape 4 : Définir les sorties
Ajoutez des couches de sortie pour chaque tâche. Chaque sortie peut avoir sa propre architecture.
# Ajouter une couche de sortie pour la première tâcheoutput_1 = Dense(units=1, activation='sigmoid', name='output_1')(x)
# Ajouter une couche de sortie pour la deuxième tâcheoutput_2 = Dense(units=1, activation='sigmoid', name='output_2')(x)
Étape 5 : Définir le modèle
Utilisez la classe Model
pour créer le modèle en spécifiant les entrées et les sorties.
# Créer le modèlemodel = Model(inputs=input_layer, outputs=[output_1, output_2])
Étape 6 : Compiler le modèle
Compilez le modèle en spécifiant l’optimiseur, les fonctions de perte pour chaque sortie, et les métriques.
# Compiler le modèlemodel.compile(optimizer='adam', loss={'output_1': 'binary_crossentropy', 'output_2': 'binary_crossentropy'}, metrics=['accuracy'])
Étape 7 : Afficher le résumé du modèle
Affichez un résumé de l’architecture du modèle pour vérifier sa structure.
# Résumé du modèlemodel.summary()
Exemple complet
Voici un exemple complet de la création d’un modèle qui produit plusieurs sorties en utilisant l’API Functional :
import tensorflow as tffrom tensorflow.keras.models import Modelfrom tensorflow.keras.layers import Input, Dense
# Définir l'entréeinput_layer = Input(shape=(32,))
# Définir les couches partagéesx = Dense(units=64, activation='relu')(input_layer)x = Dense(units=64, activation='relu')(x)
# Définir les sortiesoutput_1 = Dense(units=1, activation='sigmoid', name='output_1')(x)output_2 = Dense(units=1, activation='sigmoid', name='output_2')(x)
# Créer le modèlemodel = Model(inputs=input_layer, outputs=[output_1, output_2])
# Compiler le modèlemodel.compile(optimizer='adam', loss={'output_1': 'binary_crossentropy', 'output_2': 'binary_crossentropy'}, metrics=['accuracy'])
# Résumé du modèlemodel.summary()
Explication détaillée
- Importer les modules nécessaires :
- Importez les modules nécessaires de TensorFlow et Keras.
- Définir les entrées :
- Utilisez la classe
Input
pour définir la forme des données d’entrée. Dans cet exemple, l’entrée a une forme de(32,)
.
- Utilisez la classe
- Définir les couches partagées :
- Ajoutez des couches partagées qui seront utilisées pour produire les différentes sorties. Dans cet exemple, deux couches denses avec 64 unités et activation ReLU sont ajoutées.
- Définir les sorties :
- Ajoutez des couches de sortie pour chaque tâche. Chaque sortie peut avoir sa propre architecture. Dans cet exemple, deux couches de sortie avec 1 unité et activation sigmoid sont ajoutées.
- Définir le modèle :
- Utilisez la classe
Model
pour créer le modèle en spécifiant les entrées et les sorties.
- Utilisez la classe
- Compiler le modèle :
- Compilez le modèle avec l’optimiseur Adam, les fonctions de perte
binary_crossentropy
pour chaque sortie, et les métriques d’exactitude.
- Compilez le modèle avec l’optimiseur Adam, les fonctions de perte
- Afficher le résumé du modèle :
- Utilisez la méthode
summary
pour afficher un résumé de l’architecture du modèle.
- Utilisez la méthode
En utilisant l’API Functional, vous pouvez créer des modèles complexes avec plusieurs sorties, adaptés à des tâches de multi-tâches et à des architectures avancées.