torch.nn.utils.rnn.pack_padded_sequence
-
torch.nn.utils.rnn.pack_padded_sequence(input, lengths, batch_first=False, enforce_sorted=True)[исходный код] -
Упаковывает тензор, содержащий последовательности переменной длины с дополнением.
inputможет иметь размерT x B x *(еслиbatch_first—False) илиB x T x *(еслиbatch_first—True), гдеT— длина самой длинной последовательности,B— размер пакета, а*— любое количество измерений (включая 0).Для несортированных последовательностей используйте
enforce_sorted = False. Еслиenforce_sorted—True, последовательности следует отсортировать по длине в порядке убывания, то естьinput[:,0]должна быть самой длинной последовательностью, аinput[:,B-1]— самой короткой.enforce_sorted = Trueтребуется только для экспорта ONNX.Это обратная операция к
pad_packed_sequence(), поэтомуpad_packed_sequence()можно использовать для восстановления исходного тензора, упакованного вPackedSequence.Примечание
Эта функция принимает любые входные данные, имеющие не менее двух измерений. Ее можно применить для упаковки меток, а затем использовать вместе с ними выходные данные RNN, чтобы вычислить функцию потерь напрямую. Тензор можно получить из объекта
PackedSequence, обратившись к его атрибуту.data.- Параметры:
-
- input (Tensor) – пакет последовательностей переменной длины с дополнением.
- lengths (Tensor или list(int)) – список длин последовательностей для каждого элемента пакета (если задан в виде тензора, он должен находиться на CPU).
-
batch_first (bool, необязательный) – если
True, ожидается, что входные данные имеют форматB x T x *, в противном случае —T x B x *. Значение по умолчанию:False. -
enforce_sorted (bool, необязательный) – если
True, ожидается, что входные данные содержат последовательности, отсортированные по длине в порядке убывания. ЕслиFalse, входные данные будут отсортированы безусловно. Значение по умолчанию:True.
- Тип возвращаемого значения:
Предупреждение
Размерность тензора
inputбудет усечена, если его длина превышает соответствующее значение вlength.- Возвращает:
-
объект
PackedSequence - Тип возвращаемого значения:
© 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.pack_padded_sequence.html