Añadir capas a una red
Ya has visto cómo experimentar con redes más anchas. En este ejercicio, probarás una red más profunda (con más capas ocultas).
De nuevo, tienes un modelo base llamado model_1 como punto de partida. Tiene 1 capa oculta con 10 unidades. Puedes ver un resumen de la estructura de ese modelo impreso. Crearás una red similar con 3 capas ocultas (manteniendo 10 unidades en cada capa).
Volverá a tardar un momento en ajustar ambos modelos, así 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 Deep Learning en Python
Instrucciones del ejercicio
- Especifica un modelo llamado
model_2parecido amodel_1, pero que tenga 3 capas ocultas de 10 unidades en lugar de solo 1 capa oculta.- Usa
input_shapepara indicar la forma de entrada en la primera capa oculta. - Usa activación
'relu'para las 3 capas ocultas y'softmax'para la capa de salida, que debe tener 2 unidades.
- Usa
- Compila
model_2como has hecho con modelos anteriores: usando'adam'comooptimizer,'categorical_crossentropy'para la pérdida ymetrics=['accuracy']. - Pulsa "Submit Answer" para ajustar ambos modelos y visualizar cuál da mejores resultados.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el 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()