ComenzarEmpieza gratis

Early stopping: Optimizar la optimización

Ahora que sabes cómo monitorizar el rendimiento de tu modelo durante la optimización, puedes usar early stopping para detenerla cuando ya no aporte mejora. Como la optimización se detiene automáticamente cuando deja de ayudar, también puedes establecer un valor alto para epochs en tu llamada a .fit(), como mostró Dan en el vídeo.

El modelo que vas a optimizar está definido como model. Como antes, los datos están precargados en predictors y target.

Este ejercicio forma parte del curso

Introducción al Deep Learning en Python

Ver curso

Instrucciones del ejercicio

  • Importa EarlyStopping de tensorflow.keras.callbacks.
  • Compila el modelo, nuevamente usando 'adam' como optimizer, 'categorical_crossentropy' como función de pérdida y metrics=['accuracy'] para ver la exactitud 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 el parámetro patience de EarlyStopping() con valor 2.
  • Ajusta el modelo usando predictors y target. Especifica epochs con valor 30 y usa un validation_split de 0.3. Además, pasa [early_stopping_monitor] al parámetro callbacks.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el 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
____
Editar y ejecutar código