torch.nn.utils.rnn.pack_sequence

torch.nn.utils.rnn.pack_sequence(sequences, enforce_sorted=True)[源代码]

将一个变量长度的张量列表进行打包。

依次调用以下函数: pad_sequencepack_paded_sequence

sequences 应该是一个由张量组成的列表,每个张量的大小为 L x *。其中 L 是序列的长度,* 表示任意数量的尾随维度,包括零。

对于未排序的序列,请将enforce_sorted设置为False。如果enforce_sortedTrue,则序列应按长度递减顺序排列。enforce_sorted = True仅在导出ONNX时需要。

示例

>>> from torch.nn.utils.rnn import pack_sequence
>>> a = torch.tensor([1, 2, 3])
>>> b = torch.tensor([4, 5])
>>> c = torch.tensor([6])
>>> pack_sequence([a, b, c])
PackedSequence(data=tensor([1, 4, 6, 2, 5, 3]), batch_sizes=tensor([3, 2, 1]), sorted_indices=None, unsorted_indices=None)
参数
  • sequences (list[Tensor]) – 一个包含长度递减的张量序列的列表。

  • enforce_sorted (bool, 可选) – 如果为 True,则检查输入是否包含按长度递减顺序排序的序列。如果为 False,则不进行此检查。默认值:True

返回值

一个 PackedSequence 对象

返回类型

PackedSequence

本页目录