Path: blob/master/site/es-419/guide/migrate/migrating_estimator.ipynb
39122 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.Estimatorte 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
optimizery 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:
Ver en TensorFlow.org
Ejecutar en Google Colab
Ver código fuente en GitHub
Descargar bloc de notas