Modificarea parametrilor de optimizare
A venit momentul să pui mâna pe cod și să experimentezi cu optimizarea. Vei încerca să optimizezi un model cu o rată de învățare foarte mică, una foarte mare și una „potrivită". Urmărește rezultatele după rularea exercițiului – reține că o valoare mică a funcției de pierdere este un semn bun.
Pentru aceste exerciții, am preîncărcat valorile predictorilor și ale variabilei țintă din modelele tale de clasificare anterioare (predicția supraviețuitorilor de pe Titanic). Pentru o comparație corectă între ratele de învățare, optimizarea trebuie să pornească de la zero de fiecare dată când schimbi rata. De aceea, am creat funcția get_new_model(), care generează un model neoptimizat, gata de antrenare.
Acest exercițiu face parte din cursul
Introducere în Deep Learning în Python
Instrucțiuni pentru exercițiu
- Importă
SGDdintensorflow.keras.optimizers. - Creează o listă cu ratele de învățare pe care vrei să le testezi, numită
lr_to_test. Lista trebuie să conțină valorile.000001,0.01și1. - Folosind o buclă
forpentru a itera pestelr_to_test:- Folosește funcția
get_new_model()pentru a construi un model nou, neoptimizat. - Creează un optimizer numit
my_optimizerfolosind constructorulSGD()cu argumentul cheielr=lr. - Compilează modelul. Setează parametrul
optimizerla obiectul SGD creat anterior și, deoarece este o problemă de clasificare, folosește'categorical_crossentropy'pentru parametrulloss. - Antrenează modelul folosind
predictorsșitarget.
- Folosește funcția
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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
____