Early stopping: Otimizando a otimização
Agora que você sabe como monitorar o desempenho do seu modelo durante a otimização, pode usar early stopping para interromper a otimização quando ela não estiver mais ajudando. Como a otimização para automaticamente quando não há ganho, você também pode definir um valor alto para epochs na chamada de .fit(), como o Dan mostrou no vídeo.
O modelo que você vai otimizar foi definido como model. Como antes, os dados já estão carregados em predictors e target.
Este exercício faz parte do curso
Introdução a Deep Learning em Python
Instruções do exercício
- Importe
EarlyStoppingdetensorflow.keras.callbacks. - Compile o modelo, novamente usando
'adam'comooptimizer,'categorical_crossentropy'como função de perda emetrics=['accuracy']para ver a acurácia em cada época. - Crie um objeto
EarlyStoppingchamadoearly_stopping_monitor. Interrompa a otimização quando a perda de validação não melhorar por 2 épocas, especificando o parâmetropatiencedeEarlyStopping()como2. - Ajuste o modelo usando
predictorsetarget. Especifique o número deepochscomo30e use uma divisão de validação de0.3. Além disso, passe[early_stopping_monitor]para o parâmetrocallbacks.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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
____