L'exécution hâtive dans TensorFlow est un mode qui permet un développement plus intuitif et interactif de modèles d'apprentissage automatique. Il est particulièrement utile lors des étapes de prototypage et de débogage du développement du modèle. Dans TensorFlow, l'exécution rapide est un moyen d'exécuter des opérations immédiatement pour renvoyer des valeurs concrètes, par opposition à l'exécution traditionnelle basée sur un graphique où les opérations sont ajoutées à un graphique de calcul et exécutées ultérieurement.
Une exécution hâtive n'empêche pas la fonctionnalité distribuée de TensorFlow. TensorFlow a été conçu pour prendre en charge l'informatique distribuée sur plusieurs appareils et serveurs, et cette fonctionnalité est toujours disponible lors de l'utilisation d'une exécution rapide. En fait, les stratégies de distribution de TensorFlow peuvent être intégrées de manière transparente avec une exécution rapide pour former des modèles sur plusieurs appareils ou serveurs.
Lorsque vous travaillez avec TensorFlow distribué en mode impatient, vous pouvez utiliser des stratégies telles que « tf.distribute.MirroredStrategy » pour utiliser efficacement plusieurs GPU sur une seule machine ou « tf.distribute.MultiWorkerMirroredStrategy » pour entraîner des modèles sur plusieurs machines. Ces stratégies de distribution gèrent les complexités de l'informatique distribuée, telles que la communication entre les appareils, la synchronisation des gradients et l'agrégation des résultats.
Par exemple, si vous souhaitez entraîner un modèle sur plusieurs GPU à l'aide d'une exécution rapide, vous pouvez créer un objet « MirroredStrategy », puis exécuter votre boucle d'entraînement dans le cadre de cette stratégie. Cela répartira automatiquement le calcul sur les GPU disponibles et agrégera les dégradés pour mettre à jour les paramètres du modèle.
python import tensorflow as tf strategy = tf.distribute.MirroredStrategy() with strategy.scope(): # Define and compile your model model = tf.keras.Sequential([...]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Train your model model.fit(train_dataset, epochs=5)
Dans cet exemple, « MirroredStrategy » est utilisé pour distribuer le modèle sur plusieurs GPU à des fins de formation. Le gestionnaire de contexte `strategy.scope()` garantit que le modèle est répliqué sur chaque GPU et que les dégradés sont agrégés avant de mettre à jour les paramètres du modèle.
Une exécution hâtive dans TensorFlow n'entrave pas les fonctionnalités distribuées du framework. Au lieu de cela, il offre un moyen plus interactif et intuitif de développer des modèles d’apprentissage automatique tout en permettant une formation distribuée efficace sur plusieurs appareils ou serveurs.
D'autres questions et réponses récentes concernant Progresser dans l'apprentissage automatique:
- Quelles sont les limites du travail avec de grands ensembles de données en apprentissage automatique ?
- L’apprentissage automatique peut-il apporter une assistance dialogique ?
- Qu'est-ce que le terrain de jeu TensorFlow ?
- Les solutions cloud de Google peuvent-elles être utilisées pour dissocier l'informatique du stockage pour une formation plus efficace du modèle ML avec le Big Data ?
- Le moteur d'apprentissage automatique Google Cloud (CMLE) propose-t-il une acquisition et une configuration automatiques des ressources et gère-t-il l'arrêt des ressources une fois la formation du modèle terminée ?
- Est-il possible d’entraîner des modèles d’apprentissage automatique sur des ensembles de données arbitrairement volumineux sans problème ?
- Lors de l'utilisation de CMLE, la création d'une version nécessite-t-elle de spécifier la source d'un modèle exporté ?
- CMLE peut-il lire les données de stockage Google Cloud et utiliser un modèle entraîné spécifié pour l'inférence ?
- Tensorflow peut-il être utilisé pour la formation et l'inférence de réseaux de neurones profonds (DNN) ?
- Qu'est-ce que l'algorithme de Gradient Boosting ?
Voir plus de questions et réponses dans Faire progresser l'apprentissage automatique