CommencerCommencez gratuitement

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>
Voir le 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())
Modifier et exécuter le code