Optimierungsparameter ändern
Es ist Zeit, sich die Hände bei der Optimierung schmutzig zu machen. Jetzt probier mal, ein Modell mit einer ganz niedrigen Lernrate, einer ganz hohen Lernrate und einer „genau richtigen“ Lernrate zu optimieren. Schau dir die Ergebnisse nach dieser Übung an und denk dran, dass ein niedriger Wert für die Verlustfunktion gut ist.
Für diese Übungen haben wir die Prädiktoren und Zielwerte aus deinen früheren Klassifizierungsmodellen (Vorhersage, wer auf der Titanic überleben würde) schon vorgeladen. Du solltest die Optimierung jedes Mal von vorne beginnen, wenn du die Lernrate änderst, damit du einen fairen Vergleich der Ergebnisse der einzelnen Lernraten erhalten. Also haben wir eine Funktion namens „ get_new_model()
” erstellt, die ein nicht optimiertes Modell zum Optimieren erstellt.
Diese Übung ist Teil des Kurses
Einführung in Deep Learning mit Python
Anleitung zur Übung
Importiere
SGD
austensorflow.keras.optimizers
.Erstell eine Liste mit Lernraten, die du optimieren möchtest, und nenn sie „
lr_to_test
“. Die Lernraten sollten wie folgt sein:.000001
,0.01
und1
.Mit einer „
for
“-Schleife durch „lr_to_test
“ gehen:Mit der Funktion „
get_new_model()
“ kannst du ein neues, nicht optimiertes Modell erstellen.Erstell einen Optimierer namens „
my_optimizer
” mit dem Konstruktor „SGD()
” und dem Schlüsselwortargument „lr=lr
”.Kompiliere dein Modell. Setz den Parameter „
optimizer
” auf das SGD-Objekt, das du oben erstellt hast, und weil es sich um ein Klassifizierungsproblem handelt, nimm „'categorical_crossentropy'
” für den Parameter „loss
”.Passe dein Modell mit den folgenden Links an:
predictors
undtarget
.
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
____