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 *
的,其中 T 是最长序列的长度(等于lengths[0]
),B
是批次大小,而*
是任意数量的维度(包括 0)。如果batch_first
是True
,则期望B x T x *
的input
。对于未排序的序列,使用 enforce_sorted = False。如果
enforce_sorted
是True
,序列应按长度降序排列,即input[:,0]
应为最长序列,而input[:,B-1]
为最短 序列。enforce_sorted = True 仅在导出为 ONNX 时需要。注意
此函数接受至少具有两个维度的任何输入。您可以将其应用于打包标签,并使用RNN的输出与它们一起直接计算损失。可以通过访问
PackedSequence
对象的.data
属性来检索张量。