Definindo um modelo com múltiplas entradas
Em alguns casos, a API sequencial não será flexível o suficiente para acomodar a arquitetura de modelo desejada, e você precisará usar a API funcional. Se, por exemplo, você quiser treinar conjuntamente dois modelos com arquiteturas diferentes, será necessário usar a API funcional para isso. Neste exercício, vamos ver como fazer isso. Também usaremos o método .summary() para examinar a arquitetura do modelo conjunto.
Note que keras já foi importado de tensorflow para você. Além disso, as camadas de entrada do primeiro e do segundo modelos foram definidas como m1_inputs e m2_inputs, respectivamente. Observe que os dois modelos têm a mesma arquitetura, mas um usa a ativação sigmoid na primeira camada e o outro usa relu.
Este exercício faz parte do curso
Introdução ao TensorFlow em Python
Instruções do exercício
- Passe a camada de entrada do modelo 1 para sua primeira camada e a primeira camada do modelo 1 para sua segunda camada.
- Passe a camada de entrada do modelo 2 para sua primeira camada e a primeira camada do modelo 2 para sua segunda camada.
- Use a operação
add()para combinar as segundas camadas dos modelos 1 e 2. - Complete a definição do modelo funcional.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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())