Parada precoce: Otimizando a otimização
Agora que você sabe como monitorar o desempenho do modelo durante a otimização, pode usar a parada antecipada para interromper a otimização quando ela não estiver mais ajudando. Como a otimização é interrompida automaticamente quando não está ajudando, você também pode definir um valor alto para epochs em sua chamada para .fit(), como Dan mostrou no vídeo.
O modelo que você otimizará foi especificado como model. Como antes, os dados são pré-carregados como predictors e target.
Este exercício faz parte do curso
Introdução à aprendizagem profunda em Python
Instruções do exercício
- Importar
EarlyStoppingdetensorflow.keras.callbacks. - Compile o modelo, mais uma vez usando
'adam'comooptimizer,'categorical_crossentropy'como a função de perda emetrics=['accuracy']para ver a precisão em cada época. - Crie um objeto
EarlyStoppingchamadoearly_stopping_monitor. Interrompa a otimização quando a perda de validação não tiver melhorado em 2 épocas, especificando o parâmetropatiencedeEarlyStopping()para ser2. - Ajuste o modelo usando os sites
predictorsetarget. Especifique o número deepochsa ser30e 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
____