Optimierungsparameter ändern
Jetzt geht es ans Eingemachte: die Optimierung. Du probierst gleich, ein Modell mit einer sehr niedrigen Lernrate, einer sehr hohen Lernrate und einer „genau richtigen“ Lernrate zu optimieren. Schau dir nach dem Ausführen dieser Übung die Ergebnisse an und denk daran: Ein niedriger Wert der Verlustfunktion ist gut.
Für diese Übungen haben wir die Prädiktoren und Zielwerte aus deinen vorherigen Klassifikationsmodellen (Vorhersage, wer die Titanic-Katastrophe überlebt hätte) vorab geladen. Die Optimierung soll jedes Mal von vorn beginnen, wenn du die Lernrate änderst, damit der Vergleich fair ist. Deshalb haben wir eine Funktion get_new_model() erstellt, die ein noch nicht optimiertes Modell erzeugt, das du dann optimieren kannst.
Diese Übung ist Teil des Kurses
Einführung in Deep Learning mit Python
Anleitung zur Übung
- Importiere
SGDaustensorflow.keras.optimizers. - Erstelle eine Liste von Lernraten, mit denen du optimieren willst, namens
lr_to_test. Die Lernraten sollen.000001,0.01und1sein. - Verwende eine
for-Schleife, um überlr_to_testzu iterieren:- Nutze die Funktion
get_new_model(), um ein neues, nicht optimiertes Modell zu erstellen. - Erstelle einen Optimierer namens
my_optimizermit dem KonstruktorSGD()und dem Keyword-Argumentlr=lr. - Kompiliere dein Modell. Setze den Parameter
optimizerauf das oben erstellte SGD-Objekt und verwende, da es sich um ein Klassifikationsproblem handelt,'categorical_crossentropy'für den Parameterloss. - Trainiere dein Modell mit
predictorsundtarget.
- Nutze die Funktion
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Import the SGD optimizer
____
# Create list of learning rates: lr_to_test
lr_to_test = ____
# Loop over learning rates
for lr in lr_to_test:
print('\n\nTesting model with learning rate: %f\n'%lr )
# Build new model to test, unaffected by previous models
model = ____
# Create SGD optimizer with specified learning rate: my_optimizer
my_optimizer = ____
# Compile the model
____
# Fit the model
____