Cambiar parámetros de optimización
Es hora de ensuciarte las manos con la optimización. Ahora probarás a optimizar un modelo con una tasa de aprendizaje muy baja, otra muy alta y una "en su punto". Querrás revisar los resultados tras ejecutar este ejercicio, recordando que un valor bajo de la función de pérdida es bueno.
Para estos ejercicios, hemos precargado los predictores y los valores objetivo de tus modelos de clasificación anteriores (prediciendo quién sobreviviría en el Titanic). Querrás que la optimización empiece desde cero cada vez que cambies la tasa de aprendizaje, para poder comparar de forma justa cómo se comporta cada una en tus resultados. Por eso hemos creado una función get_new_model() que genera un modelo sin optimizar para que lo optimices.
Este ejercicio forma parte del curso
Introducción al Deep Learning en Python
Instrucciones del ejercicio
- Importa
SGDdetensorflow.keras.optimizers. - Crea una lista de tasas de aprendizaje para probar llamada
lr_to_test. Las tasas deben ser.000001,0.01y1. - Usando un bucle
forpara iterar sobrelr_to_test:- Usa la función
get_new_model()para construir un modelo nuevo y sin optimizar. - Crea un optimizador llamado
my_optimizerusando el constructorSGD()con el argumento con nombrelr=lr. - Compila tu modelo. Establece el parámetro
optimizercomo el objeto SGD que creaste arriba y, como este es un problema de clasificación, usa'categorical_crossentropy'para el parámetroloss. - Ajusta tu modelo usando
predictorsytarget.
- Usa la función
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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
____