Añadir capas a una red
Has visto cómo experimentar con redes más amplias. En este ejercicio, probarás con una red más profunda (más capas ocultas).
Una vez más, tienes un modelo base llamado model_1
como punto de partida. Tiene 1 capa oculta, con 10
unidades. Puedes ver impreso un resumen de la estructura de ese modelo. Crearás una red similar con 3 capas ocultas (manteniendo 10 unidades en cada capa).
Esto volverá a tardar un momento en ajustarse a ambos modelos, por lo que tendrás que esperar unos segundos para ver los resultados después de ejecutar tu código.
Este ejercicio forma parte del curso
Introducción al Aprendizaje Profundo en Python
Instrucciones de ejercicio
- Especifica un modelo llamado
model_2
que sea comomodel_1
, pero que tenga 3 capas ocultas de 10 unidades en lugar de sólo 1 capa oculta.- Utiliza
input_shape
para especificar la forma de entrada en la primera capa oculta. - Utiliza
'relu'
activación para las 3 capas ocultas y'softmax'
para la capa de salida, que debe tener 2 unidades.
- Utiliza
- Compila
model_2
como has hecho con los modelos anteriores: Utilizando'adam'
comooptimizer
,'categorical_crossentropy'
para la pérdida, ymetrics=['accuracy']
. - Pulsa "Enviar respuesta" para ajustar ambos modelos y ¡visualiza cuál da mejores resultados!
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# The input shape to use in the first hidden layer
input_shape = (n_cols,)
# Create the new model: model_2
model_2 = ____
# Add the first, second, and third hidden layers
____
____
____
# Add the output layer
____
# Compile model_2
____
# Fit model 1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)
# Fit model 2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)
# Create the plot
plt.plot(model_1_training.history['val_loss'], 'r', model_2_training.history['val_loss'], 'b')
plt.xlabel('Epochs')
plt.ylabel('Validation score')
plt.show()