Regroupement, mélange et num_workers
Configurez un DataLoader pour accélérer le traitement.
Regroupement, mélange et num_workers est une leçon Deep Learning Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Deep Learning Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Deep Learning Academy comprend 4 leçons au total.
Découvrez le DataLoader
Un jeu de données fournit un échantillon à la fois, mais l'entraînement fonctionne par groupes. Le DataLoader enveloppe votre jeu de données et le fournit sous forme de lots pratiques. 📦
from torch.utils.data import DataLoader
loader = DataLoader(ds)Le regroupement en lots fait gagner du temps
Définissez batch_size et le chargeur empile ce nombre d'échantillons dans un seul tenseur. Les lots plus grands utilisent mieux votre matériel et atténuent les mises à jour irrégulières.
loader = DataLoader(ds, batch_size=32)Un lot, empilé en un seul bloc
Chaque lot ajoute une première dimension. Trente-deux échantillons de forme 784 deviennent un seul tenseur de forme 32 par 784, prêt pour le modèle.
Parcourir les lots
Vous parcourez le chargeur comme n'importe quelle séquence Python. À chaque tour de boucle, il fournit un lot d'entrées et d'étiquettes pour votre étape d'entraînement.
for xb, yb in loader:
pred = model(xb)Mélanger à chaque époque
Définir shuffle sur True réorganise les échantillons à chaque époque. Cela supprime l'ordre fortuit, afin que le modèle ne puisse pas mémoriser la séquence de vos données.
loader = DataLoader(ds, batch_size=32, shuffle=True)Mélanger l'entraînement, pas le test
Activez le mélange pour l'ensemble d'entraînement, mais désactivez-le pour la validation et le test. L'évaluation mesure simplement les performances : un ordre stable y convient donc.
num_workers charge en parallèle
La lecture et le décodage des données peuvent ralentir le GPU. Définir num_workers sur une valeur supérieure à zéro crée des processus auxiliaires qui préparent le lot suivant pendant l'entraînement du modèle.
loader = DataLoader(ds, batch_size=32, num_workers=4)Choisir un nombre raisonnable de processus
Pour num_workers, un bon point de départ est le nombre de cœurs CPU dont vous disposez. Un nombre trop élevé peut saturer la mémoire : mesurez donc plutôt que de deviner.
pin_memory accélère les copies vers le GPU
Lorsque vous entraînez le modèle sur un GPU, définissez pin_memory sur True. Les lots sont placés dans une mémoire verrouillée, ce qui accélère sensiblement leur transfert vers le périphérique.
loader = DataLoader(ds, batch_size=32, pin_memory=True)Gérer le dernier lot
Le dernier lot est souvent plus petit que les autres. Utilisez drop_last avec la valeur True pour le supprimer lorsque votre modèle exige que tous les lots aient la même taille.
loader = DataLoader(ds, batch_size=32, drop_last=True)Un chargeur par partition
En pratique, vous créez un loader distinct pour l'entraînement, la validation et le test. Chacun possède ses propres réglages, comme le mélange activé uniquement pour l'entraînement.
Vérification rapide
Que fait concrètement le réglage de num_workers sur une valeur supérieure à zéro ?
Récapitulatif
Un DataLoader regroupe votre jeu de données en lots, mélange les données d'entraînement et utilise num_workers pour charger les lots en parallèle. Il alimente votre modèle efficacement et rapidement. 🎉
Apprends Python avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Regroupement, mélange et num_workers » est-elle gratuite ?
Oui — le texte complet de « Regroupement, mélange et num_workers » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Deep Learning Academy, passe à CoddyKit PRO. Le cours Deep Learning Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Regroupement, mélange et num_workers » ?
Configurez un DataLoader pour accélérer le traitement. Tu pratiques Deep Learning Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Deep Learning Academy ?
Aucune expérience préalable n'est requise. Deep Learning Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Regroupement, mélange et num_workers » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Deep Learning Academy ?
Oui. Chaque leçon Deep Learning Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Écrire une classe de jeu de données personnalisée
- Regroupement, mélange et num_workers
- collate_fn pour les entrées de longueur variable
- Normaliser et standardiser les entrées