ComenzarEmpieza gratis

Experimentando con redes más amplias

¡Ahora ya sabes todo lo necesario para empezar a experimentar con diferentes modelos!

Se ha precargado un modelo denominado « model_1 ». Puedes ver un resumen de este modelo impreso en el terminal IPython. Se trata de una red relativamente pequeña, con solo 10 unidades en cada capa oculta.

En este ejercicio crearás un nuevo modelo llamado « model_2 », similar a « model_1 », salvo que tiene 100 unidades en cada capa oculta.

Después de crear un model_2, se ajustarán ambos modelos y se mostrará un gráfico con la puntuación de pérdida de ambos modelos en cada época. Hemos añadido el argumento « verbose=False » en los comandos de ajuste para imprimir menos actualizaciones, ya que las verás gráficamente en lugar de como texto.

Dado que estás ajustando dos modelos, tardará un momento en aparecer el resultado después de pulsar «Ejecutar», así que ten paciencia.

Este ejercicio forma parte del curso

Introducción al aprendizaje profundo en Python

Ver curso

Instrucciones del ejercicio

  • Crea un model_2 e para replicar model_1, pero utiliza nodos 100 en lugar de 10 para las dos primeras capas Dense que añadas con la activación 'relu'. Utiliza nodos « 2 » para la capa de salida « Dense » con « 'softmax' » como « activation ».
  • Compila model_2 tal y como has hecho con los modelos anteriores: Utilizando 'adam' como optimizer, 'categorical_crossentropy' para la pérdida y metrics=['accuracy'].
  • Pulsa «Enviar respuesta» para ajustar ambos modelos y visualizar cuál ofrece mejores resultados. Fíjate en el argumento clave « verbose=False » en « model.fit() »: Esto imprime menos actualizaciones, ya que evaluarás los modelos gráficamente en lugar de mediante texto.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

# Define early_stopping_monitor
early_stopping_monitor = EarlyStopping(patience=2)

# Create the new model: model_2
model_2 = ____

# Add the first and second layers
____.____(____(____, ____=____, input_shape=input_shape))
____

# Add the output layer
____

# Compile model_2
____

# Fit model_1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)

# Fit model_2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], 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()
Editar y ejecutar código