評價此頁

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 將 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 是最長序列的長度。此函式假定 sequences 中所有 Tensor 的尾隨維度和型別都相同。

引數
  • sequences (list of 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。

返回型別

張量