Spec-Zone.ru › PyTorch 2.14

torch.nn.utils.rnn.pad_packed_sequence

torch.nn.utils.rnn.pad_packed_sequence(sequence, batch_first=False, padding_value=0.0, total_length=None) [исходный код]

Дополняет упакованный пакет последовательностей переменной длины.

Это обратная операция к pack_padded_sequence().

Размер возвращаемого Tensor будет T x B x * (если batch_first — False) или B x T x * (если batch_first — True), где T — длина самой длинной последовательности, а B — размер пакета.

Пример

>>> from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence
>>> seq = torch.tensor([[1, 2, 0], [3, 0, 0], [4, 5, 6]])
>>> lens = [2, 1, 3]
>>> packed = pack_padded_sequence(
...     seq, lens, batch_first=True, enforce_sorted=False
... )
>>> packed
PackedSequence(data=tensor([4, 1, 3, 5, 2, 6]), batch_sizes=tensor([3, 2, 1]),
               sorted_indices=tensor([2, 0, 1]), unsorted_indices=tensor([1, 2, 0]))
>>> seq_unpacked, lens_unpacked = pad_packed_sequence(packed, batch_first=True)
>>> seq_unpacked
tensor([[1, 2, 0],
        [3, 0, 0],
        [4, 5, 6]])
>>> lens_unpacked
tensor([2, 1, 3])

Примечание

total_length полезен для реализации шаблона pack sequence -> recurrent network -> unpack sequence в Module, обёрнутом в DataParallel. Подробности см. в этом разделе FAQ.

Параметры:
  • sequence (PackedSequence) – пакет для дополнения
  • batch_first (bool, optional) – если True, выход будет иметь формат B x T x *, иначе — T x B x *.
  • padding_value (float, optional) – значения для элементов дополнения.
  • total_length (int, optional) – если значение не равно None, длина дополненного выходного тензора будет равна total_length. Этот метод вызовет исключение ValueError, если total_length меньше максимальной длины последовательности в sequence.
Возвращает:

Кортеж из Tensor, содержащий дополненную последовательность, и Tensor, содержащий список длин каждой последовательности в пакете. Элементы пакета будут переупорядочены так же, как они были упорядочены изначально при передаче пакета в pack_padded_sequence или pack_sequence.

Тип возвращаемого значения:

tuple[Tensor, Tensor]

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.utils.rnn.pad_packed_sequence.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API