Zacznij terazZacznij za darmo

Zmiana parametrów optymalizacji

Czas wziąć się do pracy i pobawić się optymalizacją. Sprawdzisz teraz, jak model zachowuje się przy bardzo niskim, bardzo wysokim i „odpowiednim" współczynniku uczenia. Po uruchomieniu ćwiczenia warto przyjrzeć się wynikom – pamiętaj, że niska wartość funkcji straty to dobry znak.

Na potrzeby tego ćwiczenia wczytaliśmy wcześniej dane wejściowe i wartości docelowe z poprzednich modeli klasyfikacji (przewidujących, kto przeżył katastrofę Titanica). Aby uczciwie porównać różne współczynniki uczenia, optymalizacja powinna zaczynać się od zera przy każdej zmianie tego współczynnika. Dlatego przygotowaliśmy funkcję get_new_model(), która tworzy nowy, nieoptymalizowany model.

To ćwiczenie jest częścią kursu

Wprowadzenie do uczenia głębokiego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj SGD z tensorflow.keras.optimizers.
  • Utwórz listę współczynników uczenia do przetestowania o nazwie lr_to_test. Powinna zawierać wartości .000001, 0.01 i 1.
  • Używając pętli for do iteracji po lr_to_test:
    • Użyj funkcji get_new_model(), aby zbudować nowy, nieoptymalizowany model.
    • Utwórz optymalizator o nazwie my_optimizer, używając konstruktora SGD() z argumentem kluczowym lr=lr.
    • Skompiluj model. Ustaw parametr optimizer na obiekt SGD utworzony powyżej, a ponieważ jest to problem klasyfikacji, użyj 'categorical_crossentropy' dla parametru loss.
    • Dopasuj model, używając predictors i target.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
    ____
Edytuj i uruchom kod