Entraînement avec TensorFlow 2

Entraînez un modèle de machine learning avec TensorFlow 2 sur AI Platform Training en utilisant la version d'exécution 2.1 ou une version ultérieure. TensorFlow 2 simplifie de nombreuses API de TensorFlow 1. La documentation TensorFlow fournit un guide pour migrer le code TensorFlow 1 vers TensorFlow 2.

L'exécution d'une tâche d'entraînement avec TensorFlow 2 sur AI Platform Training repose sur le même processus que les autres tâches d'entraînement de code personnalisées. Cependant, certaines fonctionnalités d'AI Platform Training fonctionnent différemment avec TensorFlow 2 par rapport à TensorFlow 1. Ce document présente un résumé de ces différences.

Compatibilité de la version Python

Les versions d'exécution 2.1 et ultérieures ne sont compatibles qu'avec l'entraînement avec Python 3.7. Vous devez donc utiliser Python 3.7 pour procéder à l'entraînement avec TensorFlow 2.

La Python Software Foundation ne prend plus en charge Python 2.7 depuis le 1er janvier 2020. Aucune version d'AI Platform publiée après le 1er janvier 2020 n'est compatible avec Python 2.7.

Entraînement distribué

TensorFlow 2 fournit une API mise à jour pour l'entraînement distribué. En outre, AI Platform Training définit la variable d'environnement TF_CONFIG différemment dans les versions d'exécution 2.1 et ultérieures. Cette section décrit les deux modifications.

Stratégies de distribution

Pour effectuer un entraînement distribué avec plusieurs instances de VM dans TensorFlow 2, utilisez l'API tf.distribute.Strategy. En particulier, nous vous recommandons d'utiliser l'API Keras avec MultiWorkerMirroredStrategy ou, si vous spécifiez des serveurs de paramètres pour votre tâche, avec ParameterServerStrategy. Toutefois, notez que TensorFlow ne fournit actuellement qu'une compatibilité expérimentale pour ces stratégies.

TF_CONFIG

TensorFlow attend qu'une variable d'environnement TF_CONFIG soit définie sur chaque VM utilisée pour l'entraînement. AI Platform Training définit automatiquement cette variable d'environnement sur chaque VM utilisée dans votre tâche d'entraînement. Ainsi, chaque VM peut se comporter différemment en fonction de son type et communiquer avec une autre.

Dans les versions 2.1 et ultérieures de l'environnement d'exécution, AI Platform Training n'utilise plus le type de tâche master dans aucune variable d'environnement TF_CONFIG. En revanche, le nœud de calcul maître de votre tâche d'entraînement est associé au type chief dans la variable d'environnement TF_CONFIG. Découvrez comment AI Platform Training définit la TF_CONFIG variable d'environnement.

Accélérateurs pour l'entraînement

AI Platform Training vous permet d'accélérer vos tâches d'entraînement avec les GPU et les TPU.

GPU

Pour apprendre à utiliser les GPU pour l'entraînement, consultez le guide d'AI Platform Training pour la configuration des GPU et le guide de TensorFlow pour l'utilisation des GPU.

Si vous souhaitez effectuer l'entraînement sur une seule VM avec plusieurs GPU, il est recommandé d'utiliser l'option MirroredStrategy de TensorFlow. Si vous souhaitez effectuer l'entraînement en utilisant plusieurs VM avec GPU, il est recommandé d'utiliser l'option MultiWorkerMirroredStrategy de TensorFlow.

TPU

Pour découvrir comment utiliser les TPU à des fins d'entraînement, consultez le guide d'utilisation des TPU pour l'entraînement.

Réglages d'hyperparamètres

Si vous exécutez une tâche de réglage des hyperparamètres avec TensorFlow 2, vous devrez peut-être ajuster la façon dont le code d'entraînement transmet la métrique des réglages d'hyperparamètres au service AI Platform Training.

Si vous utilisez un Estimator, vous pouvez rédiger votre métrique sous forme de résumé de la même manière que dans TensorFlow 1. Si vous effectuez l'entraînement avec Keras, nous vous recommandons d'utiliser tf.summary.scalar pour rédiger un résumé.

En savoir plus sur la création de rapports sur la métrique d'hyperparamètres et consulter des exemples sur la façon de procéder dans TensorFlow 2.

Étape suivante