ComenzarEmpieza gratis

Experimentar con redes más anchas

¡Ya sabes todo lo necesario para empezar a experimentar con distintos modelos!

Un modelo llamado model_1 ya está precargado. Puedes ver un resumen de este modelo impreso en la IPython Shell. Es 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, excepto que tendrá 100 unidades en cada capa oculta.

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

Como vas a ajustar dos modelos, tardará un momento en aparecer los resultados después de que pulses ejecutar; ten paciencia.

Este ejercicio forma parte del curso

Introducción al Deep Learning en Python

Ver curso

Instrucciones del ejercicio

  • Crea model_2 para replicar model_1, pero usa 100 nodos en lugar de 10 para las dos primeras capas Dense que añadas con activación 'relu'. Usa 2 nodos para la capa de salida Dense con 'softmax' como activation.
  • Compila model_2 como hiciste con modelos anteriores: usando 'adam' como optimizer, 'categorical_crossentropy' para la pérdida y metrics=['accuracy'].
  • Pulsa "Submit Answer" para ajustar ambos modelos y visualizar cuál da mejores resultados. Fíjate en el argumento con nombre verbose=False en model.fit(): esto imprime menos actualizaciones, ya que evaluarás los modelos de forma gráfica en lugar de texto.

Ejercicio interactivo práctico

Prueba este ejercicio y completa 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