Změna parametrů optimalizace
Teď si vyzkoušíš optimalizaci v praxi. Budeme testovat model se třemi různými hodnotami learning rate: velmi nízkou, velmi vysokou a „akorát správnou". Po spuštění cvičení si prohlédni výsledky – pamatuj, že čím nižší hodnota ztrátové funkce, tím lépe.
Pro toto cvičení jsme předem načetli prediktory a cílové hodnoty z tvých předchozích klasifikačních modelů (předpovídaly přežití na Titaniku). Aby bylo srovnání fér, měla by optimalizace pokaždé začínat od nuly. Proto jsme připravili funkci get_new_model(), která vytvoří nový, neoptimalizovaný model.
Toto cvičení je součástí kurzu
Úvod do deep learningu v Pythonu
Pokyny k cvičení
- Importuj
SGDztensorflow.keras.optimizers. - Vytvoř seznam learning rates, které chceš otestovat, a pojmenuj ho
lr_to_test. Hodnoty v něm by měly být.000001,0.01a1. - Pomocí cyklu
forprocházej hodnoty vlr_to_test:- Pomocí funkce
get_new_model()sestav nový, neoptimalizovaný model. - Vytvoř optimizer
my_optimizerpomocí konstruktoruSGD()s argumentemlr=lr. - Zkompiluj model. Parametr
optimizernastav na SGD objekt, který jsi vytvořil/a výše, a protože jde o klasifikační úlohu, použij pro parametrlosshodnotu'categorical_crossentropy'. - Natrénuj model na datech
predictorsatarget.
- Pomocí funkce
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
____