Ändra optimeringsparametrar
Nu är det dags att experimentera med optimering. Du ska prova att optimera en modell med en mycket låg inlärningshastighet, en mycket hög inlärningshastighet och en lagom inlärningshastighet. Ta en titt på resultaten efter att du kört övningen – kom ihåg att ett lågt värde för förlustfunktionen är ett gott tecken.
För dessa övningar har vi förinstallerat prediktorerna och målvärdena från dina tidigare klassificeringsmodeller (som förutsäger vem som överlevde Titanic). För att kunna jämföra inlärningshastigheterna rättvist bör optimeringen starta från noll varje gång du byter hastighet. Därför har vi skapat funktionen get_new_model(), som skapar en ooptimerad modell att träna.
Den här övningen är en del av kursen
Introduktion till djupinlärning i Python
Övningsinstruktioner
- Importera
SGDfråntensorflow.keras.optimizers. - Skapa en lista med inlärningshastigheter att testa, kallad
lr_to_test. Listan ska innehålla värdena.000001,0.01och1. - Använd en
for-loop för att iterera överlr_to_test:- Använd funktionen
get_new_model()för att bygga en ny, ooptimerad modell. - Skapa en optimerare kallad
my_optimizermed konstruktornSGD()och nyckelordsargumentetlr=lr. - Kompilera din modell. Sätt parametern
optimizertill SGD-objektet du skapade ovan och, eftersom detta är ett klassificeringsproblem, använd'categorical_crossentropy'för parameternloss. - Träna din modell med
predictorsochtarget.
- Använd funktionen
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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
____