LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Importiere SGD aus tensorflow.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 und 1.

  • 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 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