评价此页

torch.nn.utils.rnn.pad_sequence#

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

使用 padding_value 填充一系列长度可变的 Tensor。

pad_sequence 将一系列 Tensor 堆叠到一个新的维度上,并将它们填充到相同的长度。 sequences 可以是长度为 L x * 的序列列表,其中 L 是序列的长度,* 是任意数量的维度(包括 0)。如果 batch_firstFalse,则输出尺寸为 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 * 的 Tensor,其中 T 是最长序列的长度。此函数假定序列中所有 Tensor 的尾部维度和类型均相同。

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

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

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

  • padding_side (str, optional) – 填充序列的边。默认为 'right'

返回

如果 batch_firstFalse,则尺寸为 T x B x * 的 Tensor。否则尺寸为 B x T x * 的 Tensor。

返回类型

张量