Parada anticipada: Optimizar la optimización

Ahora que sabes cómo controlar el rendimiento de tu modelo a lo largo de la optimización, puedes utilizar la parada anticipada para detener la optimización cuando ya no sirva de nada. Como la optimización se detiene automáticamente cuando no ayuda, también puedes establecer un valor alto para epochs en tu llamada a .fit(), como Dan mostró en el vídeo.

El modelo que optimizarás se ha especificado como model. Como antes, los datos están precargados como predictors y target.

Este ejercicio forma parte del curso

Introducción al Aprendizaje Profundo en Python

Ver curso

Instrucciones de ejercicio

  • Importa EarlyStopping desde tensorflow.keras.callbacks.
  • Compila el modelo, utilizando una vez más 'adam' como optimizer, 'categorical_crossentropy' como función de pérdida, y metrics=['accuracy'] para ver la precisión en cada época.
  • Crea un objeto EarlyStopping llamado early_stopping_monitor. Detén la optimización cuando la pérdida de validación no haya mejorado durante 2 épocas especificando que el parámetro patience de EarlyStopping() sea 2.
  • Ajusta el modelo utilizando predictors y target. Especifica el número de epochs que debe ser 30 y utiliza una división de validación de 0.3. Además, pasa [early_stopping_monitor] al parámetro callbacks.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Import EarlyStopping
____

# Save the number of columns in predictors: n_cols
n_cols = predictors.shape[1]
input_shape = (n_cols,)

# Specify the model
model = Sequential()
model.add(Dense(100, activation='relu', input_shape = input_shape))
model.add(Dense(100, activation='relu'))
model.add(Dense(2, activation='softmax'))

# Compile the model
____

# Define early_stopping_monitor
early_stopping_monitor = ____

# Fit the model
____