Path: blob/master/site/es-419/tutorials/keras/keras_tuner.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Introducción a Keras Tuner
Descripción general
Keras Tuner es una biblioteca que le ayuda a seleccionar el mejor conjunto de hiperparámetros para su programa de TensorFlow. El proceso de selección del conjunto adecuado de hiperparámetros para su aplicación de aprendizaje automático (ML, por sus siglas en inglés) se denomina ajuste de hiperparámetros o hiperajuste.
Los hiperparámetros son las variables que controlan el proceso de entrenamiento y la topología del modelo de aprendizaje automático. Dichas variables se mantienen constantes a lo largo del proceso de entrenamiento y afectan directamente el rendimiento del programa de aprendizaje automático. Existen dos tipos de hiperparámetros:
Hiperparámetros de modelo que influyen en la selección del modelo, como la cantidad y el ancho de las capas ocultas.
Hiperparámetros de algoritmo que influyen en la velocidad y la calidad del algoritmo de aprendizaje, como la tasa de aprendizaje del Descenso del Gradiente Estocástico (SGD, Stochastic Gradient Descent) y el número de vecinos más cercanos de un clasificador k vecinos más cercanos (KNN, K Nearest Neighbors)
En este tutorial, usará Keras Tuner para ejecutar el ajuste de hiperaparámetros en una aplicación de clasificación de imágenes.
Preparar
Instalar e importar Keras Tuner.
Cómo descargar y preparar el conjunto de datos
En este tutorial, usará Keras Tuner para encontrar los mejores hiperparámetros para un modelo de aprendizaje automático que clasifica imágenes de prendas de vestir del conjunto de datos Fashion MNIST.
Cargue los datos.
Definir el modelo
Cuando se desarrolla un modelo de hiperajuste, además de la arquitectura del modelo, es necesario definir el espacio de búsqueda del hiperparámetro. El modelo que se configura para el hiperajuste se denomina hipermodelo.
Hay dos formas de definir un hipermodelo:
Usando una función de generador de modelos
Subclasificando la clase
HyperModel
de la API de Keras Tuner
También se pueden usar dos clases predefinidas de HyperModel; HyperXception y HyperResNet para aplicaciones de visión artificial.
En este tutorial, usaremos una función de generador de modelos para definir el modelo de clasificación de imágenes. La función de generador de modelos devuelve un modelo compilado y usa los hiperparámetros que usted define en línea para ejecutar el hiperajuste del modelo.
Crear una instancia del optimizador y ejecutar hiperajuste
Cree una instancia del optimizador para ejecutar el hiperajuste. Keras Tuner tiene cuatro optimizadores disponibles: RandomSearch
, Hyperband
, BayesianOptimization
, y Sklearn
. En este tutorial, usaremos el optimizador Hyperband.
Para crear la instancia del optimizador Hyperband, debe especificar el hipermodelo, el objective
que desea
optimizar y la cantidad máxima de épocas que desea entrenar (max_epochs
).
El algoritmo de ajuste Hyperband usa asignación adaptativa de recursos y detención temprana para converger rápidamente en un modelo de alto rendimiento. Esto se logra mediante la implementación de una llave del estilo de las competencias deportivas. El algoritmo entrena un gran número de modelos durante algunas épocas y solo avanza a la siguiente ronda con la mitad de los modelos que muestran un mejor rendimiento. Hyperband determina la cantidad de modelos que se entrenarán en una llave calculando 1 + logfactor
(max_epochs
) y redondeándolo al entero más cercano.
Cree una retrollamada para detener el entrenamiento de forma temprana una vez que se haya alcanzado un valor específico en la pérdida de validación.
Ejecute la búsqueda de hiperparámetros. Los argumentos del método de búsqueda son los mismos que se usan para tf.keras.model.fit
además de la retrollamada mencionada anteriormente.
Entrenar el modelo
Use los hiperparámetros obtenidos en la búsqueda para encontrar la cantidad óptima de épocas para entrenar el modelo.
Vuelva a crear instancias del hipermodelo y entrénelo con la cantidad óptima de épocas obtenidas en el paso anterior.
Para completar este tutorial, evalúe el hipermodelo en los datos de prueba.
El directorio my_dir/intro_to_kt
contiene registros detallados y puntos de verificación para cada prueba (configuración de modelo) que se ejecuta durante la búsqueda de hiperparámetros. Si vuelve a ejecutar la búsqueda de hiperparámetros, Keras Tuner usa el estado existente de esos registros para reanudar la búsqueda. Para inhabilitar este comportamiento, debe ingresar un argumento overwrite=True
adicional durante la creación de la instancia del optimizador.
Resumen
En este tutorial, aprendimos cómo usar Keras Tuner para ajustar los hiperparámetros de un modelo. Para obtener más información sobre cómo usar Keras Tuner, consulte los siguientes recursos adicionales:
También le recomendamos que consulte el panel de control de HParams en TensorBoard para ajustar los hiperparámetros de su modelo de forma interactiva.