Ce article suggère qu'il existe trois options pour la formation distribuéenuage ML type par défaut de formation du moteur distribué tf.estimator personnalisé
- de formation de données parallèles mises à jour synchrones.
- Formation parallèle aux données avec mises à jour asynchrones.
- Formation parallèle au modèle.
Le tutoriel va ensuite suggérer que le code qui suit effectue formation parallèle des données mises à jour asynchrones sur le Cloud ML Engine qui se comporte comme « Si vous diffusez 10.000 lots parmi les 10 nœuds de travail, chaque nœud travaille sur environ 1000 lots. "
Cependant, il n'est pas clair quelle partie du code spécifie réellement qu'il utilise une formation parallèle aux données avec des mises à jour asynchrones. Est-ce simplement la valeur par défaut pour le moteur ML si vous l'exécutez en mode d'entraînement distribué avec un tf.estimator personnalisé?
Merci! Ma question de suivi est postée ici: https://stackoverflow.com/questions/45989971/distributed-training-with-tf-estimator-resulting-in-more-training-steps - Je voulais d'abord confirmer que je devrais attendre la formation parallèle aux données, donc je suis assez confus par les performances que je vois avec les expériences distribuées ML Engine que je cours – reese0106
Aussi, sont les instructions tf.device() nécessaires pour tirer parti des GPU?J'ai vu une documentation contradictoire suggérant que cela est nécessaire, mais j'observe une accélération entre BASIC et BASIC_GPU, mais je ne suis pas sûr si cela est dû au GPU ou juste que le BASIC_GPU a aussi un plus grand processeur. – reese0106
Si vous avez un GPU (comme BASIC_GPU), il n'est pas strictement nécessaire de spécifier le périphérique (voir https://www.tensorflow.org/tutorials/using_gpu pour plus d'informations). Cela dit, le code GPU performant nécessite souvent de forcer certaines opérations sur un CPU. Voir https://www.tensorflow.org/performance/performance_guide#preprocessing_on_the_cpu pour plus d'informations à ce sujet. – rhaertel80