torch.nn.utils.rnn.pack_sequence
- torch.nn.utils.rnn.pack_sequence(sequences, enforce_sorted=True)[source][source]
包含可变长度张量列表。
连续调用以下函数:
pad_sequence
,pack_padded_sequence
。sequences
应该是一个大小为L x *
的张量列表,其中 L 是序列的长度,* 表示任意数量的尾随维度,包括0
。对于未排序的序列,请使用 enforce_sorted = False。如果
enforce_sorted
是True
,则序列应按长度递减的顺序排序。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)
- 参数:
序列(列表[Tensor])- 一个递减长度的序列列表。
enforce_sorted(布尔值,可选)- 如果
True
,则检查输入是否按长度递减顺序排序的序列。如果False
,则不检查此条件。默认:True
。
- 返回值:
一个
PackedSequence
对象- 返回类型: