Zacznij terazZacznij za darmo

Definiowanie modelu z wieloma wejściami

W niektórych przypadkach sekwencyjne API może być niewystarczająco elastyczne, by obsłużyć wymaganą architekturę modelu – wtedy warto sięgnąć po funkcjonalne API. Jeśli na przykład chcesz jednocześnie trenować dwa modele o różnych architekturach, właśnie to API będzie właściwym wyborem. W tym ćwiczeniu zobaczysz, jak to zrobić. Skorzystasz też z metody .summary(), aby przejrzeć architekturę połączonego modelu.

Zwróć uwagę, że keras zostało już zaimportowane z tensorflow. Warstwy wejściowe pierwszego i drugiego modelu zostały zdefiniowane odpowiednio jako m1_inputs i m2_inputs. Oba modele mają tę samą architekturę, ale jeden z nich używa aktywacji sigmoid w pierwszej warstwie, a drugi – relu.

To ćwiczenie jest częścią kursu

Wprowadzenie do TensorFlow w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Przekaż warstwę wejściową modelu 1 do jego pierwszej warstwy, a pierwszą warstwę modelu 1 do jego drugiej warstwy.
  • Przekaż warstwę wejściową modelu 2 do jego pierwszej warstwy, a pierwszą warstwę modelu 2 do jego drugiej warstwy.
  • Użyj operacji add(), aby połączyć drugie warstwy modelu 1 i modelu 2.
  • Uzupełnij definicję modelu funkcjonalnego.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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())
Edytuj i uruchom kod