Shortcuts

torch.nn.utils.rnn.pad_sequence

torch.nn.utils.rnn.pad_sequence(sequences, batch_first=False, padding_value=0.0)[源代码]

padding_value 填充长度可变的张量列表。

pad_sequence 将一个张量列表沿新维度堆叠,并将其填充到相同长度。例如,如果输入是一个大小为 L x * 的序列列表,并且 batch_first 为 False,则输出的大小为 T x B x *

B 是批次大小。它等于 sequences 中的元素数量。 T 是最长序列的长度。 L 是序列的长度。 * 是任意数量的尾随维度,包括无。

示例

>>> from torch.nn.utils.rnn import pad_sequence
>>> a = torch.ones(25, 300)
>>> b = torch.ones(22, 300)
>>> c = torch.ones(15, 300)
>>> pad_sequence([a, b, c]).size()
torch.Size([25, 3, 300])

注意

此函数返回一个大小为 T x B x *B x T x * 的张量,其中 T 是最长序列的长度。此函数假设序列中所有张量的尾随维度和类型相同。

Parameters
  • sequences列表[张量])– 可变长度序列的列表。

  • batch_first (布尔值, 可选) – 如果为真,输出将为 B x T x *,否则为 T x B x *。默认值:False。

  • padding_valuefloat, 可选)– 填充元素的值。默认值:0。

Returns

如果 batch_firstFalse,则为大小为 T x B x * 的张量。 否则为大小为 B x T x * 的张量

Return type

张量

优云智算