Een model met meerdere invoeren definiëren
In sommige gevallen is de sequential API niet flexibel genoeg voor de modelarchitectuur die je wilt, en moet je in plaats daarvan de functional API gebruiken. Als je bijvoorbeeld twee modellen met verschillende architecturen gezamenlijk wilt trainen, heb je de functional API nodig. In deze oefening zie je hoe je dat doet. We gebruiken ook de .summary()-methode om de architectuur van het gecombineerde model te bekijken.
Let op: keras is al voor je geïmporteerd uit tensorflow. Daarnaast zijn de invoerlagen van het eerste en tweede model gedefinieerd als respectievelijk m1_inputs en m2_inputs. Merk op dat de twee modellen dezelfde architectuur hebben, maar dat het ene een sigmoid-activatie in de eerste laag gebruikt en het andere een relu.
Deze oefening maakt deel uit van de cursus
Introductie tot TensorFlow in Python
Oefeninstructies
- Geef de invoerlaag van model 1 door aan zijn eerste laag en de eerste laag van model 1 aan zijn tweede laag.
- Geef de invoerlaag van model 2 door aan zijn eerste laag en de eerste laag van model 2 aan zijn tweede laag.
- Gebruik de
add()-operatie om de tweede lagen van model 1 en model 2 te combineren. - Maak de definitie van het functionele model af.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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())