Cambiar los parámetros de optimización
Es hora de ponerse manos a la obra con la optimización. Ahora intentarás optimizar un modelo con una tasa de aprendizaje muy baja, una tasa de aprendizaje muy alta y una tasa de aprendizaje «adecuada». Te interesará ver los resultados después de realizar este ejercicio, recordando que un valor bajo para 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 (predicción de quién sobreviviría en el Titanic). Querrás que la optimización comience desde cero cada vez que cambies la tasa de aprendizaje, para poder comparar de forma justa los resultados obtenidos con cada tasa de aprendizaje. Así que hemos creado una función get_new_model()
que crea un modelo no optimizado para optimizar.
Este ejercicio forma parte del curso
Introducción al aprendizaje profundo en Python
Instrucciones del ejercicio
Importa
SGD
desdetensorflow.keras.optimizers
.Crea una lista de tasas de aprendizaje para intentar optimizar con el nombre «
lr_to_test
». Las tasas de aprendizaje deben ser.000001
,0.01
y1
.Uso de un bucle «
for
» para iterar sobre unlr_to_test
:Utiliza la función «
get_new_model()
» para crear un nuevo modelo sin optimizar.Crea un optimizador llamado «
my_optimizer
» utilizando el constructor «SGD()
» con el argumento clave «lr=lr
».Compila tu modelo. Establece el parámetro «
optimizer
» (objeto de salida) como el objeto SGD que has creado anteriormente y, dado que se trata de un problema de clasificación, utiliza «'categorical_crossentropy'
» (clasificador de clase única) para el parámetro «loss
» (objeto de entrada).Ajusta tu modelo utilizando
predictors
ytarget
.
Ejercicio interactivo práctico
Prueba este ejercicio completando 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
____