Définir un modèle à entrées multiples
Dans certains cas, l’API séquentielle n’est pas assez flexible pour la structure de modèle que vous souhaitez, et vous devrez utiliser à la place l’API fonctionnelle. Par exemple, si vous voulez entraîner conjointement deux modèles aux architectures différentes, il faudra recourir à l’API fonctionnelle. Dans cet exercice, nous allons voir comment procéder. Nous utiliserons également la méthode .summary() pour examiner l’architecture du modèle joint.
Notez que keras a été importé depuis tensorflow pour vous. De plus, les couches d’entrée des premier et second modèles ont été définies respectivement comme m1_inputs et m2_inputs. Remarquez que les deux modèles partagent la même architecture, mais l’un utilise une activation sigmoid dans la première couche, tandis que l’autre utilise relu.
Cet exercice fait partie du cours
<cours>Introduction à TensorFlow en Python</cours>Instructions de l’exercice
- Passez la couche d’entrée du modèle 1 à sa première couche, puis la première couche du modèle 1 à sa deuxième couche.
- Passez la couche d’entrée du modèle 2 à sa première couche, puis la première couche du modèle 2 à sa deuxième couche.
- Utilisez l’opération
add()pour combiner les deuxièmes couches des modèles 1 et 2. - Terminez la définition du modèle fonctionnel.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# For model 1, pass the input layer to layer 1 and layer 1 to layer 2
m1_layer1 = keras.layers.Dense(12, activation='sigmoid')(____)
m1_layer2 = keras.layers.Dense(4, activation='softmax')(____)
# For model 2, pass the input layer to layer 1 and layer 1 to layer 2
m2_layer1 = keras.layers.Dense(12, activation='relu')(____)
m2_layer2 = keras.layers.Dense(4, activation='softmax')(____)
# Merge model outputs and define a functional model
merged = keras.layers.add([m1_layer2, ____])
model = keras.Model(inputs=[____, m2_inputs], outputs=____)
# Print a model summary
print(model.summary())