Definire un modello con input multipli
In alcuni casi, la sequenziale API non è abbastanza flessibile per supportare l'architettura di modello che desideri e dovrai usare invece la functional API. Se, per esempio, vuoi addestrare congiuntamente due modelli con architetture diverse, dovrai usare la functional API. In questo esercizio vedremo come fare. Useremo anche il metodo .summary() per esaminare l'architettura del modello congiunto.
Nota che keras è già stato importato da tensorflow. Inoltre, i layer di input del primo e del secondo modello sono stati definiti rispettivamente come m1_inputs e m2_inputs. Nota che i due modelli hanno la stessa architettura, ma uno usa un'attivazione sigmoid nel primo layer e l'altro usa relu.
Questo esercizio fa parte del corso
Introduzione a TensorFlow in Python
Istruzioni dell'esercizio
- Passa il layer di input del modello 1 al suo primo layer e il primo layer del modello 1 al suo secondo layer.
- Passa il layer di input del modello 2 al suo primo layer e il primo layer del modello 2 al suo secondo layer.
- Usa l'operazione
add()per combinare i secondi layer del modello 1 e del modello 2. - Completa la definizione del modello funzionale.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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())