Deep Learning Academy · Leçon

Regrouper les séquences et gérer le remplissage

Entraînez efficacement des séquences de longueurs variables.

Leçon 4 sur 413 étapes

Regrouper les séquences et gérer le remplissage est une leçon Deep Learning Academy gratuite sur CoddyKit. Ceci est la leçon 4 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.

Les lots ont besoin de rectangles

Pour traiter plusieurs séquences à la fois, un lot doit former un rectangle régulier. Mais les vraies phrases ont des longueurs différentes et ne s'alignent donc pas.

Compléter jusqu'à une longueur commune

La solution est le remplissage : ajouter des jetons de remplissage, généralement des zéros, aux séquences courtes afin que chaque ligne du lot ait la même longueur.

L'assistant pad_sequence

pad_sequence de PyTorch empile une liste de tenseurs de longueurs variables en un seul lot complété, en un seul appel.

from torch.nn.utils.rnn import pad_sequence
batch = pad_sequence(seqs, batch_first=True)

Le remplissage gaspille du calcul

Ces jetons de remplissage sont artificiels. Si le RNN les traite malgré tout, il consomme du calcul inutile et le remplissage peut polluer l'état caché.

Suivre les longueurs réelles

Avant le remplissage, notez la longueur réelle de chaque séquence. Vous fournirez ces longueurs à PyTorch pour lui indiquer où s'arrêtent les données réelles.

lengths = [len(s) for s in seqs]

Compacter le lot

pack_padded_sequence transforme le lot complété et les longueurs en un format compact que le RNN peut traiter sans toucher au remplissage.

packed = pack_padded_sequence(batch, lengths, batch_first=True)

Exécuter le RNN sur des données compactées

Fournissez directement l'objet compacté à nn.LSTM ou nn.GRU. La cellule ignore les étapes complétées, ce qui garde la mémoire propre et claire.

out_packed, h_n = lstm(packed)

Décompacter la sortie

Pour relire les sorties de chaque étape, appelez pad_packed_sequence afin de restaurer la forme rectangulaire complétée une fois le RNN terminé.

out, lengths = pad_packed_sequence(out_packed, batch_first=True)

Trier par longueur

Le compactage classique exige de trier les séquences de la plus longue à la plus courte. Définissez enforce_sorted sur False et PyTorch gérera les lots non triés.

Masquer la perte

Même avec le compactage, ignorez les positions complétées lors de l'évaluation. Un masque ou ignore_index exclut les jetons artificiels de la perte.

loss_fn = nn.CrossEntropyLoss(ignore_index=PAD_ID)

L'intégrer au DataLoader

Effectuez le remplissage dans une fonction collate_fn personnalisée afin que chaque lot arrive déjà complété, avec les longueurs prêtes pour le compactage.

Vérification rapide

Pourquoi compacter un lot complété avant de le fournir à un RNN ?

Récapitulatif

Complétez pour aligner le lot, suivez les longueurs réelles, puis compactez afin que le RNN ignore le remplissage. Masquez également les jetons complétés dans la perte. ✅

Gratuit pour commencer

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 « Regrouper les séquences et gérer le remplissage » est-elle gratuite ?

Oui — le texte complet de « Regrouper les séquences et gérer le remplissage » 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 « Regrouper les séquences et gérer le remplissage » ?

Entraînez efficacement des séquences de longueurs variables. 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 4 sur 4.

Combien de temps prend la leçon « Regrouper les séquences et gérer le remplissage » ?

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

  1. Pourquoi les séquences ont besoin de mémoire
  2. La cellule RNN classique
  3. Portes LSTM et GRU
  4. Regrouper les séquences et gérer le remplissage
← Retour à Deep Learning Academy