Definiera en modell med flera indata
I vissa fall är det sekventiella API:et inte tillräckligt flexibelt för den modellarkitektur du vill använda – då behöver du använda det funktionella API:et i stället. Om du till exempel vill träna två modeller med olika arkitekturer gemensamt måste du använda det funktionella API:et. I den här övningen ser vi hur det går till. Vi använder också metoden .summary() för att undersöka den kombinerade modellens arkitektur.
Observera att keras redan har importerats från tensorflow. Dessutom har indatalagren för den första och andra modellen definierats som m1_inputs respektive m2_inputs. De två modellerna har samma arkitektur, men en av dem använder en sigmoid-aktivering i det första lagret och den andra använder relu.
Den här övningen är en del av kursen
Introduktion till TensorFlow i Python
Övningsinstruktioner
- Skicka modell 1:s indatalager till dess första lager och modell 1:s första lager till dess andra lager.
- Skicka modell 2:s indatalager till dess första lager och modell 2:s första lager till dess andra lager.
- Använd
add()-operationen för att kombinera de andra lagren från modell 1 och modell 2. - Slutför definitionen av den funktionella modellen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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())