Definice modelu s více vstupy
V některých případech nebude sekvenční API dostatečně flexibilní pro požadovanou architekturu modelu a bude potřeba použít funkcionální API. Pokud chceš například společně trénovat dva modely s různými architekturami, funkcionální API je právě to, co potřebuješ. V tomto cvičení si ukážeme, jak na to, a použijeme metodu .summary() k prozkoumání architektury spojeného modelu.
Povšimni si, že keras už je za tebe naimportován z tensorflow. Vstupní vrstvy prvního a druhého modelu jsou definovány jako m1_inputs, resp. m2_inputs. Oba modely mají stejnou architekturu, ale jeden z nich používá v první vrstvě aktivaci sigmoid a druhý relu.
Toto cvičení je součástí kurzu
Úvod do TensorFlow v Pythonu
Pokyny k cvičení
- Předej vstupní vrstvu modelu 1 do jeho první vrstvy a první vrstvu modelu 1 do jeho druhé vrstvy.
- Předej vstupní vrstvu modelu 2 do jeho první vrstvy a první vrstvu modelu 2 do jeho druhé vrstvy.
- Pomocí operace
add()zkombinuj druhé vrstvy modelu 1 a modelu 2. - Dokonči definici funkcionálního modelu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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())