Interrupción temprana: Optimización de la optimización
Ahora que sabes cómo supervisar el rendimiento de tu modelo durante la optimización, puedes utilizar la detención anticipada para detener la optimización cuando ya no sea útil. Dado que la optimización se detiene automáticamente cuando no es útil, también puedes establecer un valor alto para epochs
en tu llamada a .fit()
, tal y como muestra Dan 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 del 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 dos épocas especificando el parámetro «patience
» de «EarlyStopping()
» como «2
». - Ajusta el modelo utilizando
predictors
ytarget
. Especifica el número deepochs
que se van a30
y utiliza una división de validación de0.3
. Además, pasa[early_stopping_monitor]
al parámetrocallbacks
.
Ejercicio interactivo práctico
Prueba este ejercicio completando 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
____