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

Ver Curso

Instruções de exercício

  • Importar EarlyStopping de tensorflow.keras.callbacks.
  • Compile o modelo, mais uma vez usando 'adam' como optimizer, 'categorical_crossentropy' como a função de perda e metrics=['accuracy'] para ver a precisão em cada época.
  • Crie um objeto EarlyStopping chamado early_stopping_monitor. Interrompa a otimização quando a perda de validação não tiver melhorado em 2 épocas, especificando o parâmetro patience de EarlyStopping() para ser 2.
  • Ajuste o modelo usando os sites predictors e target. Especifique o número de epochs a ser 30 e use uma divisão de validação de 0.3. Além disso, passe [early_stopping_monitor] para o parâmetro callbacks.

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
____