Визначення моделі з кількома входами
У деяких випадках API sequential недостатньо гнучкий для бажаної архітектури моделі, і тоді потрібно використовувати функціональний 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())