0Pricing
Deep Learning Academy · Урок

Упакуйте последовательности и обработайте дополнение

Эффективно обучайтесь на последовательностях разной длины

«Упакуйте последовательности и обработайте дополнение» — бесплатный урок Deep Learning Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Deep Learning Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Deep Learning Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Batches Want Rectangles

To process many sequences at once, a batch must be a neat rectangle. But real sentences have different lengths, so they don't line up.

Padding to a Common Length

The fix is padding: add filler tokens, usually zeros, to short sequences so every row in the batch is the same length.

pad_sequence Helper

PyTorch's pad_sequence stacks a list of variable-length tensors into one padded batch in a single call.

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

Padding Wastes Compute

Those filler tokens are fake. If the RNN processes them anyway, it burns compute and can let the padding pollute the hidden state.

Track the Real Lengths

Before padding, record each sequence's true length. You'll hand these lengths to PyTorch so it knows where the real data ends.

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

Packing the Batch

pack_padded_sequence turns the padded batch plus lengths into a compact form the RNN can run without touching the padding.

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

Run the RNN on Packed Data

Feed the packed object straight into nn.LSTM or nn.GRU. The cell skips padded steps, so memory stays clean and clear.

out_packed, h_n = lstm(packed)

Unpack the Output

To read per-step outputs again, call pad_packed_sequence to restore the rectangular padded shape after the RNN finishes.

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

Sort by Length

Classic packing wants sequences sorted longest first. Set enforce_sorted to False and PyTorch handles unsorted batches for you.

Mask the Loss

Even with packing, ignore padded positions when scoring. A mask or ignore_index keeps fake tokens out of the loss.

loss_fn = nn.CrossEntropyLoss(ignore_index=PAD_ID)

Wire It Into the DataLoader

Do the padding inside a custom collate_fn so every batch arrives already padded, with lengths ready for packing.

Quick Check

Why pack a padded batch before feeding it to an RNN?

Recap

Pad to align a batch, track true lengths, then pack so the RNN ignores filler. Mask padded tokens in the loss too. ✅

Часто задаваемые вопросы

Урок «Упакуйте последовательности и обработайте дополнение» бесплатный?

Да — полный текст урока «Упакуйте последовательности и обработайте дополнение» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Deep Learning Academy, подпишись на CoddyKit PRO. Курс Deep Learning Academy содержит 4 уроков всего.

Чему я научусь в уроке «Упакуйте последовательности и обработайте дополнение»?

Эффективно обучайтесь на последовательностях разной длины Ты практикуешь Deep Learning Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Deep Learning Academy?

Предыдущий опыт не требуется. Deep Learning Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Упакуйте последовательности и обработайте дополнение»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Deep Learning Academy?

Да. Каждый урок Deep Learning Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Почему последовательностям нужна память
  2. Обычная ячейка RNN
  3. Вентили LSTM и GRU
  4. Упакуйте последовательности и обработайте дополнение
← Назад к Deep Learning Academy