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
Instrucciones del ejercicio
- Importa
EarlyStoppingdetensorflow.keras.callbacks. - Compila el modelo, nuevamente usando
'adam'comooptimizer,'categorical_crossentropy'como función de pérdida ymetrics=['accuracy']para ver la exactitud en cada época. - Crea un objeto
EarlyStoppingllamadoearly_stopping_monitor. Detén la optimización cuando la pérdida de validación no haya mejorado durante 2 épocas especificando el parámetropatiencedeEarlyStopping()con valor2. - Ajusta el modelo usando
predictorsytarget. Especificaepochscon valor30y usa unvalidation_splitde0.3. Además, pasa[early_stopping_monitor]al parámetrocallbacks.
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
____