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
Instrucciones de ejercicio
- Importa
EarlyStopping
desdetensorflow.keras.callbacks
. - Compila el modelo, utilizando una vez más
'adam'
comooptimizer
,'categorical_crossentropy'
como función de pérdida, ymetrics=['accuracy']
para ver la precisión en cada época. - Crea un objeto
EarlyStopping
llamadoearly_stopping_monitor
. Detén la optimización cuando la pérdida de validación no haya mejorado durante 2 épocas especificando que el parámetropatience
deEarlyStopping()
sea2
. - Ajusta el modelo utilizando
predictors
ytarget
. Especifica el número deepochs
que debe ser30
y utiliza una división de validación de0.3
. Además, pasa[early_stopping_monitor]
al parámetrocallbacks
.
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
____