Path: blob/master/site/es-419/lattice/tutorials/canned_estimators.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Estimadores prediseñados de TF Lattice
Advertencia: Los estimadores no se recomiendan para código nuevo. Los estimadores ejecutan el código de estilo
v1.Session
que es más difícil de escribir correctamente y puede tener un comportamiento inesperado; particularmente, cuando se combina con código TF 2. Los estimadores están incluidos dentro de nuestras garantías de compatibilidad, pero no se les harán correcciones a menos que se trate de vulnerabilidades de seguridad. Para más detalles, consulte la Guía de migración.
Descripción general
Los estimadores prediseñados son formas rápidas y sencillas de entrenar modelos de TFL para casos de uso típicos. Esta guía describe los pasos necesarios para crear un estimador prediseñado de TFL.
Preparación
Instalar el paquete TF Lattice:
Importar los paquetes requeridos:
Descargar el conjunto de datos Statlog (corazón) de UCI:
Establecer los valores predeterminados que se usan para el entrenamiento en esta guía:
Columnas de funciones
Al igual que con cualquier otro estimador de TF, los datos deben pasarse al estimador, que generalmente se realiza a través de input_fn y se analizan mediante FeatureColumns.
Los estimadores prediseñados de TFL usan el tipo de columna de funciones para decidir qué tipo de capa de calibración usar. Usamos una capa tfl.layers.PWLCalibration
para columnas de funciones numéricas y una capa tfl.layers.CategoricalCalibration
para columnas de funciones categóricas.
Tenga en cuenta que las columnas de funciones categóricas no están envueltas en una columna de funciones de incorporación. Se ingresan directamente en el estimador.
Crear input_fn
Como con cualquier otro estimador, se puede usar input_fn para alimentar datos al modelo para entrenamiento y evaluación. Los estimadores de TFL pueden calcular automáticamente cuantiles de las funciones y usarlos como puntos clave de entrada para la capa de calibración de PWL. Para esto, requieren pasar un feature_analysis_input_fn
, que es similar al input_fn de entrenamiento pero con una única época o una submuestra de los datos.
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.
Si no se define ninguna configuración para una función de entrada, se usa la configuración predeterminada en tfl.config.FeatureConfig
.
Modelo lineal calibrado
Para construir un estimador 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. Usamos tfl.visualization
para trazar el gráfico del modelo con los gráficos del calibrador.
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.
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.
Conjunto de cuadrículas aleatorio
La siguiente configuración del modelo usa un subconjunto aleatorio de funciones para cada cuadrícula.
Conjunto de cuadrículas aleatorio de capa RTL
La siguiente configuración del modelo usa una capa tfl.layers.RTL
que utiliza un subconjunto aleatorio de funciones para cada cuadrícula. 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.
Conjunto de cuadrículas Crystals
TFL también proporciona un algoritmo de disposición de funciones heurísticas, llamado Crystals. El algoritmo Crystals primero entrena 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.
Para los modelos de Crystals, también deberá proporcionar un prefitting_input_fn
que se usa para entrenar el modelo de preajuste, como se describe anteriormente. No es necesario entrenar completamente el modelo de preajuste, por lo que unas pocas épocas deberían ser suficientes.
Luego puede crear un modelo Crystal al establecer lattice='crystals'
en la configuración del modelo.
Puede trazar calibradores de funciones más detallados con el módulo tfl.visualization
.