torch.nn.utils.rnn.pad_sequence

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

padding_value 对一个长度不一的 Tensor 列表进行填充。

pad_sequence 沿着新维度堆叠一个张量列表,并将它们填充到相同的长度。假设 sequences 是具有大小为 L x * 的序列列表,其中 L 表示序列的长度,而 * 代表任意数量的维度(包括零)。如果 batch_first 设置为 False,则输出尺寸为 T x B x *;否则,输出尺寸为 B x T x *。这里,B 表示批量大小(即 sequences 中元素的数量),而 T 则表示最长序列的长度。

示例

>>> 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 表示最长序列的长度。此外,该函数假设序列中所有张量的尾部维度和数据类型相同。

参数
  • sequences (list[Tensor]) – 变长度序列的列表。

  • batch_first (bool, optional) – 如果为True,输出格式将为B x T x *,否则为T x B x *

  • padding_value (float, 可选) – 填充元素的值,默认为 0。

  • padding_side (str, optional) – 序列的填充方向。默认值:“right”。

返回值

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

返回类型

Tensor

本页目录