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é.
Étapes suivantes
- En savoir plus sur la configuration de la version d'exécution et de la version Python d'une tâche d'entraînement.
- En savoir plus sur la configuration d'un entraînement distribué.
- En savoir plus sur le réglage des hyperparamètres.