Path: blob/master/site/es-419/lattice/tutorials/premade_models.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Modelos prediseñados de TF Lattice
Descripción general
Los modelos prediseñados son formas rápidas y sencillas de crear instancias TFL tf.keras.model
para casos de uso típicos. En esta guía se describen los pasos necesarios para construir un modelo prediseñado de TFL y entrenarlo/probarlo.
Preparación
Instalar el paquete TF Lattice:
Importar los paquetes requeridos:
Establecer los valores predeterminados que se usan para el entrenamiento en esta guía:
Descargar el conjunto de datos Statlog (corazón) de UCI:
Configs de funciones
La calibración de funciones y las configuraciones por función se establecen mediante tfl.configs.FeatureConfig. Las configuraciones de funciones incluyen restricciones de monotonicidad, regularización por función (consulte tfl.configs.RegularizerConfig) y tamaños de cuadrícula para modelos de cuadrícula.
Tenga en cuenta que debemos especificar la configuración de funciones para cualquier función que queramos que reconozca nuestro modelo. De lo contrario, el modelo no tendrá forma de saber que existe dicha función.
Definir Config de nuestras funciones
Ahora que podemos calcular nuestros cuantiles, definimos una config de las funciones para cada función que queremos que nuestro modelo tome como entrada.
Establecer monotonicidades y puntos clave
A continuación, debemos asegurarnos de configurar correctamente las monotonicidades de las funciones en las que usamos un vocabulario personalizado (como 'thal' anteriormente).
Finalmente podemos completar nuestras configuraciones de funciones calculando y configurando los puntos clave.
Modelo lineal calibrado
Para construir un modelo prediseñado de TFL, cree una configuración de modelo a partir de tfl.configs
. Se construye un modelo lineal calibrado con tfl.configs.CalibratedLinearConfig
. Esto aplica una calibración categórica y lineal por partes en las funciones de entrada, seguida de una combinación lineal y una calibración lineal por partes de salida opcional. Cuando se usa la calibración de salida o cuando se especifican límites de salida, la capa lineal aplicará un promedio ponderado en las entradas calibradas.
Este ejemplo crea un modelo lineal calibrado en las primeras 5 funciones.
Ahora, como con cualquier otro tf.keras.Model, compilamos y ajustamos el modelo para nuestros datos.
Después de entrenar nuestro modelo, podemos evaluarlo en nuestro conjunto de prueba.
Modelo de cuadrícula calibrado
Se construye un modelo de cuadrícula calibrado con tfl.configs.CalibratedLatticeConfig
. Un modelo de cuadrícula calibrado aplica una calibración categórica y lineal por partes en las funciones de entrada, seguida de un modelo de cuadrícula y una calibración lineal por partes de salida opcional.
Este ejemplo crea un modelo de cuadrícula calibrado en las primeras 5 funciones.
Como hicimos anteriormente, compilamos, ajustamos y evaluamos nuestro modelo.
Modelo de conjunto de cuadrículas calibrado
Cuando la cantidad de funciones es grande, se puede usar un modelo de conjunto, que crea múltiples cuadrículas más pequeñas para subconjuntos de funciones y promedia su salida en lugar de crear una sola cuadrícula grande. Los modelos de conjunto de cuadrículas se construyen con tfl.configs.CalibratedLatticeEnsembleConfig
. Un modelo de conjunto de cuadrículas calibrado aplica una calibración categórica y lineal por partes en la función de entrada, seguida de un conjunto de modelos de cuadrículas y una calibración lineal por partes de salida opcional.
Inicialización explícita del conjunto de cuadrículas
Si ya sabe qué subconjuntos de funciones desea introducir en sus cuadrículas, puede configurar explícitamente las cuadrículas con nombres de funciones. En este ejemplo se crea un modelo de conjunto de cuadrículas calibrado con 5 cuadrículas y 3 funciones por cuadrículas.
Como hicimos anteriormente, compilamos, ajustamos y evaluamos nuestro modelo.
Conjunto de cuadrículas aleatorio
Si no sabe qué subconjuntos de funciones desea introducir en sus cuadrículas, otra opción es usar subconjuntos aleatorios de funciones para cada cuadrícula. En este ejemplo se crea un modelo de conjunto de cuadrículas calibrado con 5 cuadrículas y 3 funciones por cuadrículas.
Como hicimos anteriormente, compilamos, ajustamos y evaluamos nuestro modelo.
Conjunto de cuadrículas aleatorio de capa RTL
Cuando se usa un conjunto aleatorio de cuadrículas, puede especificar que el modelo use una tfl.layers.RTL
única. Podemos observar que tfl.layers.RTL
solo admite restricciones de monotonicidad y debe tener el mismo tamaño de cuadrícula para todas las funciones y sin regularización por función. Tenga en cuenta que usar una capa tfl.layers.RTL
le permite escalar a conjuntos mucho más grandes que usar instancias tfl.layers.Lattice
separadas.
En este ejemplo se crea un modelo de cuadrícula calibrado con 5 cuadrículas y 3 funciones por cuadrícula.
Como hicimos anteriormente, compilamos, ajustamos y evaluamos nuestro modelo.
Conjunto de cuadrículas Crystals
El modelo prediseñado también proporciona un algoritmo de disposición de funciones heurísticas, llamado Crystals. Para usar el algoritmo Crystals, primero entrenamos un modelo de preajuste que estima las interacciones de funciones por pares. Luego organiza el conjunto final de manera que las funciones con más interacciones no lineales estén en las mismas cuadrículas.
La biblioteca prefabricada ofrece funciones ayudantes para construir la configuración del modelo de preajuste y extraer la estructura de Crystals. Tenga en cuenta que no es necesario entrenar completamente el modelo de preajuste, por lo que unas pocas épocas deberían ser suficientes.
En este ejemplo se crea un conjunto de cuadrícula calibrado con 5 cuadrículas y 3 funciones por cuadrícula.
Como hicimos anteriormente, compilamos, ajustamos y evaluamos nuestro modelo.