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 de exercício
- Importar
EarlyStopping
detensorflow.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
EarlyStopping
chamadoearly_stopping_monitor
. Interrompa a otimização quando a perda de validação não tiver melhorado em 2 épocas, especificando o parâmetropatience
deEarlyStopping()
para ser2
. - Ajuste o modelo usando os sites
predictors
etarget
. Especifique o número deepochs
a ser30
e 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 preenchendo 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
____