ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Importa SGD desde tensorflow.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 y 1.

  • Uso de un bucle « for » para iterar sobre un lr_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 y target.

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
    ____
Editar y ejecutar código