Определение модели с несколькими входами
В некоторых случаях последовательного API недостаточно для реализации нужной архитектуры модели — тогда на помощь приходит функциональный API. Например, если вы хотите совместно обучить две модели с разными архитектурами, без функционального API не обойтись. В этом упражнении мы разберём, как это сделать, а также воспользуемся методом .summary(), чтобы изучить архитектуру объединённой модели.
Обратите внимание: keras уже импортирован из tensorflow. Входные слои первой и второй моделей заданы как m1_inputs и m2_inputs соответственно. Обе модели имеют одинаковую архитектуру, однако в первом слое одной из них используется активация sigmoid, а в другой — relu.
Это упражнение является частью курса
Введение в TensorFlow на Python
Инструкции к упражнению
- Передайте входной слой модели 1 в её первый слой, а первый слой модели 1 — во второй.
- Передайте входной слой модели 2 в её первый слой, а первый слой модели 2 — во второй.
- С помощью операции
add()объедините вторые слои модели 1 и модели 2. - Завершите определение функциональной модели.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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())