Aan de slagGa gratis aan de slag

Early stopping: de optimalisatie optimaliseren

Nu je weet hoe je de prestaties van je model tijdens de optimalisatie kunt monitoren, kun je early stopping gebruiken om te stoppen wanneer verder optimaliseren niet meer helpt. Omdat de optimalisatie automatisch stopt wanneer het niets meer oplevert, kun je in je aanroep van .fit() ook een hoge waarde voor epochs instellen, zoals Dan in de video liet zien.

Het model dat je gaat optimaliseren is gedefinieerd als model. Net als eerder zijn de gegevens al ingeladen als predictors en target.

Deze oefening maakt deel uit van de cursus

Introductie tot Deep Learning in Python

Cursus bekijken

Oefeninstructies

  • Importeer EarlyStopping uit tensorflow.keras.callbacks.
  • Compileer het model, opnieuw met 'adam' als optimizer, 'categorical_crossentropy' als verliesfunctie, en metrics=['accuracy'] om de nauwkeurigheid per epoch te zien.
  • Maak een EarlyStopping-object met de naam early_stopping_monitor. Stop met optimaliseren wanneer de validatieverlies 2 epochs lang niet is verbeterd door de parameter patience van EarlyStopping() op 2 te zetten.
  • Train het model met predictors en target. Stel het aantal epochs in op 30 en gebruik een validatiesplit van 0.3. Geef bovendien [early_stopping_monitor] door aan de parameter callbacks.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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
____
Code bewerken en uitvoeren