Path: blob/master/site/es-419/tensorboard/hyperparameter_tuning_with_hparams.ipynb
25115 views
Copyright 2019 The TensorFlow Authors.
Ajuste de hiperparámetros con el panel HParams
Cuando se construyen modelos de aprendizaje automático, es necesario elegir varios hiperparámetros, como la tasa de abandono en una capa o la tasa de aprendizaje. Estas decisiones influyen en las métricas del modelo, como puede ser la precisión. Por lo tanto, un paso importante en el flujo de trabajo del aprendizaje automático es identificar los mejores hiperparámetros para su problema, lo que a menudo implica experimentación. Este proceso se conoce como "optimización de hiperparámetros" o "ajuste de hiperparámetros".
El panel HParams de TensorBoard proporciona varias herramientas para ayudar en este proceso de identificación del mejor experimento o de los conjuntos de hiperparámetros más prometedores.
Este tutorial se centrará en los siguientes pasos:
Preparación del experimento y resumen de HParams
Adaptar las ejecuciones de TensorFlow para registrar hiperparámetros y métricas
Inicie las ejecuciones y regístrelas todas bajo un mismo directorio padre
Visualice los resultados en el panel HParams de TensorBoard
Nota: Las API de resumen de HParams y la interfaz de usuario del panel de control se encuentran en una fase preliminar y cambiarán con el tiempo.
Comience instalando TF 2.0 y cargando la extensión del bloc de notas de TensorBoard:
Importe TensorFlow y el complemento TensorBoard HParams:
Descargue el conjunto de datos FashionMNIST y escálelo:
1. Preparación del experimento y resumen del experimento HParams
Experimente con tres hiperparámetros en el modelo:
Número de unidades en la primera capa densa
Tasa de abandono en la capa de abandono
Optimizador
Enumere los valores a probar y registre una configuración del experimento en TensorBoard. Este paso es opcional: puede proporcionar información de dominio para permitir un filtro más preciso de los hiperparámetros en la interfaz de usuario, y puede especificar qué métricas deben mostrarse.
Si decide omitir este paso, puede utilizar una cadena literal allí donde de otro modo utilizaría un valor HParam
: por ejemplo, hparams['dropout']
en vez de hparams[HP_DROPOUT]
.
2. Adaptar las ejecuciones de TensorFlow para registrar hiperparámetros y métricas
El modelo será bastante simple: dos capas densas con una capa de abandono entre ellas. El código de entrenamiento le resultará familiar, aunque los hiperparámetros ya no están codificados. En cambio, los hiperparámetros se proporcionan en un diccionario hparams
y se utilizan en toda la función de entrenamiento:
Para cada ejecución, registre un resumen hparams con los hiperparámetros y la precisión final:
Cuando entrene modelos de Keras, puede utilizar retrollamadas en vez de escribirlas directamente:
3. Inicie las ejecuciones y regístrelas todas bajo un mismo directorio padre
Ahora puede probar varios experimentos, entrenando cada uno con un conjunto diferente de hiperparámetros.
Para simplificar, utilice una búsqueda cuadriculada: pruebe todas las combinaciones de los parámetros discretos y sólo los límites inferior y superior del parámetro basado en valores reales. Para escenarios más complejos, puede ser más eficaz elegir cada valor del hiperparámetro al azar (esto se denomina búsqueda aleatoria). Se pueden utilizar métodos más avanzados.
Realice algunos experimentos, que le tomarán unos minutos:
4. Visualice los resultados en el complemento HParams de TensorBoard
Ahora puede abrir el panel de HParams. Inicie TensorBoard y haga clic en "HParams" en la parte superior.
El panel izquierdo del panel de control ofrece funciones de filtro que están activas en todas las vistas del panel de control de HParams:
Filtre qué hiperparámetros/ métricas se mostrarán en el panel de control
Filtre qué valores de hiperparámetros/métricas se mostrarán en el panel de control
Filtro sobre el estado de ejecución (en marcha, éxito, ...)
Ordenar por hiperparámetro/métrica en la vista en forma de tabla
Número de grupos de sesiones a mostrar (útil para el rendimiento cuando hay muchos experimentos)
El panel de control de HParams tiene tres vistas diferentes, con información útil variada:
La Vista de la tabla enumera las ejecuciones, sus hiperparámetros y sus métricas.
La Vista de coordenadas paralelas muestra cada pasada como una línea que atraviesa un eje para cada hiperparámetro y métrica. Haga clic y arrastre el ratón sobre cualquier eje para marcar una región que resaltará sólo las ejecuciones que pasen por ella. Esto puede ser útil para identificar qué grupos de hiperparámetros son los más importantes. Los propios ejes pueden reordenarse arrastrándolos.
La vista Diagrama de dispersión muestra gráficos que comparan cada hiperparámetro/métrica con cada métrica. Esto puede ayudar a identificar correlaciones. Haga clic y arrastre para seleccionar una región en un gráfico específico y resaltar esas sesiones en los demás gráficos.
Se puede hacer clic en una fila de la tabla, una línea de coordenadas paralelas y un mercado de gráficos de dispersión para ver un gráfico de las métricas en función de los pasos de entrenamiento para esa sesión (aunque en este tutorial sólo se utilice un paso para cada corrida).
Para explorar más a fondo las capacidades del panel de control de HParams, descargue un conjunto de registros pregenerados con más experimentos:
Visualice estos registros en TensorBoard:
Puede probar las distintas vistas en el panel de control de HParams.
Por ejemplo, si va a la vista de coordenadas paralelas y hace clic y arrastra en el eje de precisión, puede seleccionar las ejecuciones con mayor precisión. Como estas ejecuciones pasan por 'adam' en el eje del optimizador, puede concluir que 'adam' funcionó mejor que 'sgd' en estos experimentos.