Early Stopping: Die Optimierung optimieren
Jetzt, wo du weißt, wie du die Leistung deines Modells während der Optimierung überwachst, kannst du Early Stopping nutzen, um die Optimierung zu beenden, wenn sie nicht mehr besser wird. Da die Optimierung automatisch stoppt, wenn sie nichts mehr bringt, kannst du in deinem Aufruf von .fit() auch einen hohen Wert für epochs setzen, wie Dan im Video gezeigt hat.
Das zu optimierende Modell wurde als model vorgegeben. Wie zuvor sind die Daten als predictors und target vorab geladen.
Diese Übung ist Teil des Kurses
Einführung in Deep Learning mit Python
Anleitung zur Übung
- Importiere
EarlyStoppingaustensorflow.keras.callbacks. - Kompiliere das Modell erneut mit
'adam'alsoptimizer,'categorical_crossentropy'als Verlustfunktion undmetrics=['accuracy'], um die Genauigkeit in jedem Durchlauf zu sehen. - Erzeuge ein
EarlyStopping-Objekt namensearly_stopping_monitor. Beende die Optimierung, wenn sich der Validierungsverlust zwei Durchläufe lang nicht verbessert hat, indem du den ParameterpatiencevonEarlyStopping()auf2setzt. - Trainiere das Modell mit
predictorsundtarget. Setzeepochsauf30und verwende einen Validierungsanteil von0.3. Übergib zusätzlich[early_stopping_monitor]an den Parametercallbacks.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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
____