LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Importiere SGD aus tensorflow.keras.optimizers.
  • Erstelle eine Liste von Lernraten, mit denen du optimieren willst, namens lr_to_test. Die Lernraten sollen .000001, 0.01 und 1 sein.
  • Verwende eine for-Schleife, um über lr_to_test zu iterieren:
    • Nutze die Funktion get_new_model(), um ein neues, nicht optimiertes Modell zu erstellen.
    • Erstelle einen Optimierer namens my_optimizer mit dem Konstruktor SGD() und dem Keyword-Argument lr=lr.
    • Kompiliere dein Modell. Setze den Parameter optimizer auf das oben erstellte SGD-Objekt und verwende, da es sich um ein Klassifikationsproblem handelt, 'categorical_crossentropy' für den Parameter loss.
    • Trainiere dein Modell mit predictors und target.

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
    ____
Code bearbeiten und ausführen