Entrenamiento con TensorFlow 2

Entrena un modelo de aprendizaje automático con TensorFlow 2 AI Platform Training con la versión del entorno de ejecución 2.1 o posterior. TensorFlow 2 simplifica muchas API de TensorFlow 1. En la documentación de TensorFlow, se proporciona una guía para migrar el código de TensorFlow 1 a TensorFlow 2.

Ejecutar un trabajo de entrenamiento con TensorFlow 2 en AI Platform Training implica seguir el mismo proceso que ejecutar otros trabajos de entrenamiento de código personalizado. Sin embargo, algunas características de AI Platform Training funcionan de manera diferente con TensorFlow 2 en comparación con su funcionamiento con TensorFlow 1. En este documento, se proporciona un resumen de estas diferencias.

Versiones de Python compatibles

Las versiones del entorno de ejecución 2.1 y posteriores solo admiten el entrenamiento con Python 3.7. Por lo tanto, debes usar Python 3.7 para entrenar con TensorFlow 2.

Python Software Foundation finalizó la compatibilidad para Python 2.7 el 1 de enero de 2020. Ninguna versión del entorno de ejecución de AI Platform actualizada después del 1 de enero de 2020 es compatible con Python 2.7.

Entrenamiento distribuido

TensorFlow 2 proporciona una API actualizada para el entrenamiento distribuido. Además, AI Platform Training configura la variable de entorno TF_CONFIG de manera diferente en las versiones del entorno de ejecución 2.1 y posteriores. En esta sección, se describen ambos cambios.

Estrategias de distribución

Si deseas realizar un entrenamiento distribuido con varias instancias de máquinas virtuales (VM) en TensorFlow 2, usa la API de tf.distribute.Strategy. En particular, te recomendamos que uses la API de Keras junto con la MultiWorkerMirroredStrategy o, si especificas los servidores de parámetros para el trabajo, la ParameterServerStrategy. Sin embargo, ten en cuenta que, en la actualidad, TensorFlow solo proporciona compatibilidad experimental para estas estrategias.

TF_CONFIG

TensorFlow espera que se establezca una variable de entorno TF_CONFIG en cada VM que se usa para el entrenamiento. AI Platform Training configura de manera automática esta variable de entorno en cada VM que se usa en tu trabajo de entrenamiento. Esto permite que cada una se comporte de manera diferente según su tipo y que se comuniquen entre sí.

En la versión del entorno de ejecución 2.1 y posteriores, AI Platform Training ya no usa el tipo de tarea master en ninguna variable de entorno TF_CONFIG. En su lugar, el trabajador principal de tu trabajo de entrenamiento está etiquetado con el tipo chief en la variable de entorno TF_CONFIG. Obtén más información sobre cómo AI Platform Training establece la variable de entorno TF_CONFIG.

Aceleradores para el entrenamiento

AI Platform Training te permite acelerar tus trabajos de entrenamiento con GPU y TPU.

GPU

Si deseas aprender a usar las GPU para el entrenamiento, lee la guía de AI Platform Training sobre la configuración de GPU y la guía de TensorFlow sobre el uso de GPU.

Si deseas entrenar en una VM con varias GPU, la práctica recomendada es usar la MirroredStrategy de TensorFlow. Si deseas entrenar mediante varias VM con GPU, la práctica recomendada es usar MultiWorkerMirroredStrategy de TensorFlow.

TPU

Si deseas obtener información sobre cómo usar las TPU para el entrenamiento, lee la guía sobre cómo entrenar con TPU.

Ajuste de hiperparámetros

Si ejecutas un trabajo de ajuste de hiperparámetros con TensorFlow 2, es posible que debas ajustar la forma en la que tu código de entrenamiento informa sobre la métrica de ajuste de hiperparámetros al servicio de AI Platform Training.

Si entrenas con un Estimador, puedes escribir tu métrica en un resumen de la misma manera que lo haces en TensorFlow 1. Si entrenas con Keras, te recomendamos que uses tf.summary.scalar para escribir un resumen.

Obtén más información acerca de cómo informar sobre la métrica de hiperparámetros y obtén ejemplos de cómo hacerlo en TensorFlow 2.

¿Qué sigue?