Path: blob/master/site/es-419/guide/migrate/canned_estimators.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
Ejemplos de migración: Estimadores enlatados
Los estimadores enlatados (o prefabricados) se han usado tradicionalmente en TensorFlow 1 como formas rápidas y sencillas de entrenar modelos para una variedad de casos de uso típicos. TensorFlow 2 proporciona sustitutos aproximados directos para un número de ellos por medio de modelos Keras. Para aquellos estimadores enlatados que no tienen sustitutos incorporados en TensorFlow 2, puede construir su propio reemplazo con bastante facilidad.
Esta guía le mostrará algunos ejemplos de equivalencias directas y sustituciones personalizadas para demostrar cómo los modelos derivados de tf.estimator
de TensorFlow 1 se pueden migrar a TensorFlow 2 con Keras.
En concreto, esta guía incluye ejemplos de migración:
De
tf.estimator
'sLinearEstimator
,Classifier
oRegressor
en TensorFlow 1 a Kerastf.compat.v1.keras.models.LinearModel
en TensorFlow 2De
tf.estimator
'sDNNEstimator
,Classifier
oRegressor
en TensorFlow 1 a una DNN personalizada de Keras ModelKeras en TensorFlow 2De
tf.estimator
'sDNNLinearCombinedEstimator
,Classifier
oRegressor
en TensorFlow 1 atf.compat.v1.keras.models.WideDeepModel
en TensorFlow 2De
tf.estimator
'sBoostedTreesEstimator
,Classifier
oRegressor
en TensorFlow 1 atfdf.keras.GradientBoostedTreesModel
en TensorFlow 2
Un precursor común para el entrenamiento de un modelo es el preprocesamiento de características, que se realiza para los modelos de Estimador de TensorFlow 1 con tf.feature_column
. Para obtener más información sobre el preprocesamiento de características en TensorFlow 2, consulte esta guía sobre la migración de columnas de características a la API de capas de preprocesamiento de Keras.
Preparación
Comience con un par de importaciones necesarias de TensorFlow,
prepare algunos datos sencillos para demostrar a partir del conjunto de datos estándar Titanic,
y cree un método para crear instancias de un optimizador de muestra simplista para utilizar con varios modelos del Estimador TensorFlow 1 y Keras de TensorFlow 2.
Ejemplo 1: Migración desde LinearEstimator
TensorFlow 1: Uso del LinearEstimator
En TensorFlow 1, puede utilizar tf.estimator.LinearEstimator
para crear un modelo lineal de referencia para problemas de regresión y clasificación.
TensorFlow 2: Uso de Keras LinearModel
En TensorFlow 2, puede crear una instancia de Keras tf.compat.v1.keras.models.LinearModel
que es el sustituto de tf.estimator.LinearEstimator
. La ruta tf.compat.v1.keras
se utiliza para indicar que el modelo prefabricado existe por motivos de compatibilidad.
Ejemplo 2: Migración desde DNNEstimator
TensorFlow 1: Uso de DNNEstimator
En TensorFlow 1, puede utilizar tf.estimator.DNNEstimator
para crear un modelo básico de red neuronal profunda (DNN) para problemas de regresión y clasificación.
TensorFlow 2: Uso de Keras para crear un modelo DNN personalizado
En TensorFlow 2, puede crear un modelo DNN personalizado para sustituir a uno generado por tf.estimator.DNNEstimator
, con niveles similares de personalización especificados por el usuario (por ejemplo, como en el ejemplo anterior, la capacidad de personalizar un optimizador de modelo elegido).
Se puede utilizar un flujo de trabajo similar para sustituir tf.estimator.experimental.RNNEstimator
por un modelo de red neuronal recurrente (RNN) de Keras. Keras proporciona una serie de opciones incorporadas y personalizables mediante tf.keras.layers.RNN
, tf.keras.layers.LSTM
, y tf.keras.layers.GRU
. Para obtener más información, consulte la sección Capas RNN incorporadas: un ejemplo sencillo de la guía RNN con Keras.
Ejemplo 3: Migración desde DNNLinearCombinedEstimator
TensorFlow 1: Uso de DNNLinearCombinedEstimator
En TensorFlow 1, puede utilizar tf.estimator.DNNLinearCombinedEstimator
para crear un modelo básico combinado para resolver problemas de regresión y clasificación con capacidad de personalización tanto para sus componentes lineales como DNN.
TensorFlow 2: Uso de Keras WideDeepModel
En TensorFlow 2, puede crear una instancia de Keras tf.compat.v1.keras.models.WideDeepModel
para sustituir a una generada por tf.estimator.DNNLinearCombinedEstimator
, con niveles similares de personalización especificados por el usuario (por ejemplo, como en el ejemplo anterior, la capacidad de personalizar un optimizador del modelo elegido).
Este WideDeepModel
se construye sobre la base de un LinearModel
constituyente y un Modelo DNN personalizado, ambos discutidos en los dos ejemplos anteriores. Si lo desea, también puede utilizar un modelo lineal personalizado en vez del modelo LinearModel
incorporado en Keras.
Si desea construir su propio modelo en vez de utilizar un estimador enlatado, consulte la guía Modelo secuencial de Keras. Para obtener más información sobre el entrenamiento personalizado y los optimizadores, consulte la guía Entrenamiento personalizado: recorrido.
Ejemplo 4: Migración desde BoostedTreesEstimator
TensorFlow 1: Uso de BoostedTreesEstimator
En TensorFlow 1, podría utilizar tf.estimator.BoostedTreesEstimator
para crear una línea de base para crear una línea de base del modelo Gradient Boosting utilizando un conjunto de árboles de decisión para resolver problemas de regresión y clasificación. Esta funcionalidad ya no está incluida en TensorFlow 2.
TensorFlow 2: Uso de los Bosques de decisiones de TensorFlow
En TensorFlow 2, tf.estimator.BoostedTreesEstimator
se sustituye por tfdf.keras.GradientBoostedTreesModel del paquete Bosques de decisiones de TensorFlow.
Los Bosques de decisiones de TensorFlow proporcionan varias ventajas sobre el tf.estimator.BoostedTreesEstimator
, especialmente en cuanto a calidad, velocidad, facilidad de uso y flexibilidad. Para aprender sobre los Bosques de decisiones de TensorFlow, comience con el colab para principiantes.
El siguiente ejemplo muestra cómo entrenar un modelo de Gradient Boosted Trees usando TensorFlow 2:
Instale los Bosques de decisiones de TensorFlow.
Cree un conjunto de datos en TensorFlow. Tenga en cuenta que los bosques de decisiones admiten de forma nativa muchos tipos de características y no necesitan preprocesamiento.
Entrene el modelo en el conjunto de datos train_dataset
.
Evalúe la calidad del modelo en el conjunto de datos eval_dataset
.
Gradient Boosted Trees es solo uno de los muchos algoritmos de bosques de decisiones disponibles en los Bosques de decisiones de TensorFlow. Por ejemplo, Random Forests (disponible como tfdf.keras.GradientBoostedTreesModel es muy resistente al sobreajuste) mientras que CART (disponible como tfdf.keras.CartModel) es genial para la interpretación de modelos.
En el siguiente ejemplo, entrene y represente gráficamente un modelo de Random Forest.
En el ejemplo final, entrene y evalúe un modelo CART.