НачатьНачать бесплатно

Определение модели с несколькими входами

В некоторых случаях последовательного 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())
Редактировать и запускать код