Définir un modèle à entrées multiples
Dans certains cas, l'API séquentielle ne sera pas assez flexible pour l'architecture de modèle que vous visez et vous devrez plutôt utiliser l'API fonctionnelle. Par exemple, si vous voulez entraîner conjointement deux modèles avec des architectures différentes, il faudra recourir à l'API fonctionnelle. Dans cet exercice, nous allons voir comment procéder. Nous utiliserons aussi la méthode .summary() pour examiner l'architecture du modèle conjoint.
Notez que keras a été importé depuis tensorflow pour vous. De plus, les couches d'entrée des premier et deuxième modèles ont été définies comme m1_inputs et m2_inputs, respectivement. Les deux modèles ont la même architecture, mais l'un utilise une activation sigmoid dans la première couche et l'autre utilise relu.
Cette activité fait partie du cours
Introduction à TensorFlow en Python
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())