ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Importe EarlyStopping de tensorflow.keras.callbacks.
  • Compile o modelo, novamente usando 'adam' como optimizer, 'categorical_crossentropy' como função de perda e metrics=['accuracy'] para ver a acurácia em cada época.
  • Crie um objeto EarlyStopping chamado early_stopping_monitor. Interrompa a otimização quando a perda de validação não melhorar por 2 épocas, especificando o parâmetro patience de EarlyStopping() como 2.
  • Ajuste o modelo usando predictors e target. Especifique o número de epochs como 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 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
____
Editar e executar o código