Definir un modelo de entradas múltiples
En algunos casos, el API secuencial no será lo suficientemente flexible para adaptarse a la arquitectura de tu modelo y tendrás que utilizar en su lugar el API funcional. Si, por ejemplo, quieres entrenar conjuntamente dos modelos con arquitecturas diferentes, tendrás que utilizar el funcional API para hacerlo. En este ejercicio veremos cómo hacerlo. También utilizaremos el método .summary()
para examinar la arquitectura del modelo conjunto.
Ten en cuenta que keras
se ha importado de tensorflow
para ti. Además, las capas de entrada del primer y segundo modelos se han definido como m1_inputs
y m2_inputs
, respectivamente. Observa que los dos modelos tienen la misma arquitectura, pero uno de ellos utiliza una activación sigmoid
en la primera capa y el otro una relu
.
Este ejercicio forma parte del curso
Introducción a TensorFlow en Python
Instrucciones de ejercicio
- Pasa la capa de entrada del modelo 1 a su primera capa y la primera capa del modelo 1 a su segunda capa.
- Pasa la capa de entrada del modelo 2 a su primera capa y la primera capa del modelo 2 a su segunda capa.
- Utiliza la operación
add()
para combinar las segundas capas del modelo 1 y del modelo 2. - Completa la definición del modelo funcional.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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())