Path: blob/master/site/es-419/guide/migrate/migrating_estimator.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
Migrar de Estimator a las API de Keras
Esta guía muestra cómo migrar de las API tf.estimator.Estimator
de TensorFlow 1 a las API tf.keras
de TensorFlow 2. En primer lugar, prepararás y ejecutarás un modelo básico de entrenamiento y evaluación con tf.estimator.Estimator
. A continuación, realizarás los pasos equivalentes en TensorFlow 2 con las API tf.keras
. También aprenderás a personalizar el paso de entrenamiento subclasificando tf.keras.Model
y usando tf.GradientTape
.
En TensorFlow 1, las API de alto nivel
tf.estimator.Estimator
te permiten entrenar y evaluar un modelo, así como realizar inferencias y guardar tu modelo (para servirlo).En TensorFlow 2, usa las APIs Keras para realizar las tareas mencionadas, como construcción de modelos, aplicación de gradientes, entrenamiento, evaluación y predicción.
(Para migrar flujos de trabajo de guardado de modelos/puntos de verificación a TensorFlow 2, consulta las guías de migración SavedModel y Checkpoint).
Preparación
Empieza con imports y un conjunto de datos sencillo:
TensorFlow 1: Entrenar y evaluar con tf.estimator.Estimator
Este ejemplo muestra cómo realizar el entrenamiento y la evaluación con tf.estimator.Estimator
en TensorFlow 1.
Empieza definiendo unas cuantas funciones: una función de entrada para los datos de entrenamiento, una función de entrada de evaluación para los datos de evaluación y una función de modelo que indique al Estimator
cómo se define la op de entrenamiento con las características y las etiquetas:
Instancia tu Estimator
, y entrena el modelo:
Evalúa el programa con el conjunto de evaluación:
TensorFlow 2: Entrenar y evaluar con los métodos Keras incorporados
Este ejemplo muestra cómo realizar el entrenamiento y la evaluación con Model.fit
y Model.evaluate
de Keras en TensorFlow 2. (Puedes obtener más información en la guía Entrenamiento y evaluación con los métodos incorporados.)
Para empezar, prepara la canalización del conjunto de datos con las API
tf.data.Dataset
.Define un modelo Keras sencillo Sequential con una capa lineal (
tf.keras.layers.Dense
).Instancia un optimizador Adagrad (
tf.keras.optimizers.Adagrad
).Configura el modelo para el entrenamiento pasando la variable
optimizer
y la pérdida de error cuadrático medio ("mse"
) aModel.compile
.
Una vez hecho esto, ya puedes entrenar el modelo llamando a Model.fit
:
Por último, evalúa el modelo con Model.evaluate
:
TensorFlow 2: Entrena y evalúa con un paso de entrenamiento personalizado y métodos Keras integrados
En TensorFlow 2, también puedes escribir tu propia función de pasos de entrenamiento personalizada con tf.GradientTape
para realizar pasadas hacia delante y hacia atrás, sin dejar de aprovechar el soporte de entrenamiento incorporado, como tf.keras.callbacks.Callback
y tf.distribute.Strategy
. (Más información en Cómo personalizar lo que ocurre en Model.fit y Cómo escribir bucles de entrenamiento personalizados desde cero).
En este ejemplo, empieza por crear un tf.keras.Model
personalizado subclasificando tf.keras.Sequential
que anule Model.train_step
(aprende más sobre hacer subclases de tf.keras.Model). Dentro de esa clase, define una función personalizada train_step
que, para cada lote de datos, realice una pasada hacia delante y otra hacia atrás durante un paso de entrenamiento.
Luego, como antes:
Prepara la canalización del conjunto de datos con
tf.data.Dataset
.Define un modelo sencillo con una capa
tf.keras.layers.Dense
.Instancia Adagrad (
tf.keras.optimizers.Adagrad
)Configura el modelo para el entrenamiento con
Model.compile
, usando el error cuadrático medio ("mse"
) como función de pérdida.
Llama a Model.fit
para entrenar el modelo:
Y, por último, evalúa el programa con Model.evaluate
:
Siguientes pasos
Recursos adicionales de Keras que puedes encontrar útiles:
Guía: Entrenamiento y evaluación con los métodos incorporados
Guía: Cómo crear nuevas capas y modelos Keras mediante creación de subclases
Las siguientes guías pueden ser útiles para migrar los flujos de trabajo de la estrategia de distribución desde APIs tf.estimator
: