Aan de slagGa gratis aan de slag

Optimalisatieparameters aanpassen

Tijd om zelf met optimalisatie aan de slag te gaan. Je gaat nu een model optimaliseren met een heel lage learning rate, een heel hoge learning rate en een “net goed” learning rate. Bekijk na het uitvoeren van deze oefening de resultaten en onthoud: een lage waarde voor de loss-functie is goed.

Voor deze oefeningen hebben we de predictors en target-waarden uit je eerdere classificatiemodellen (voorspellen wie de Titanic zou overleven) alvast ingeladen. Je wilt dat de optimalisatie telkens vanaf nul start wanneer je de learning rate verandert, zodat je eerlijk kunt vergelijken hoe elke learning rate presteerde in je resultaten. Daarom hebben we een functie get_new_model() gemaakt die een niet-geoptimaliseerd model aanmaakt om te optimaliseren.

Deze oefening maakt deel uit van de cursus

Introductie tot Deep Learning in Python

Cursus bekijken

Oefeninstructies

  • Importeer SGD uit tensorflow.keras.optimizers.
  • Maak een lijst met learning rates om mee te optimaliseren, lr_to_test genaamd. De learning rates daarin moeten .000001, 0.01 en 1 zijn.
  • Gebruik een for-lus om over lr_to_test te itereren:
    • Gebruik de functie get_new_model() om een nieuw, niet-geoptimaliseerd model te bouwen.
    • Maak een optimizer my_optimizer met de constructor SGD() met het keywordargument lr=lr.
    • Compileer je model. Zet de parameter optimizer op het zojuist gemaakte SGD-object en gebruik, omdat dit een classificatieprobleem is, 'categorical_crossentropy' voor de parameter loss.
    • Train (fit) je model met predictors en target.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren