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
Oefeninstructies
- Importeer
EarlyStoppinguittensorflow.keras.callbacks. - Compileer het model, opnieuw met
'adam'alsoptimizer,'categorical_crossentropy'als verliesfunctie, enmetrics=['accuracy']om de nauwkeurigheid per epoch te zien. - Maak een
EarlyStopping-object met de naamearly_stopping_monitor. Stop met optimaliseren wanneer de validatieverlies 2 epochs lang niet is verbeterd door de parameterpatiencevanEarlyStopping()op2te zetten. - Train het model met
predictorsentarget. Stel het aantalepochsin op30en gebruik een validatiesplit van0.3. Geef bovendien[early_stopping_monitor]door aan de parametercallbacks.
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
____