Shortcuts

torch.nn.utils.rnn.unpad_sequence

torch.nn.utils.rnn.unpad_sequence(padded_sequences, lengths, batch_first=False)[源代码]

将填充的Tensor解压为一系列长度可变的Tensor。

unpad_sequence 将填充的Tensor解堆叠为一系列可变长度的Tensor。

示例

>>> from torch.nn.utils.rnn import pad_sequence, unpad_sequence
>>> a = torch.ones(25, 300)
>>> b = torch.ones(22, 300)
>>> c = torch.ones(15, 300)
>>> sequences = [a, b, c]
>>> padded_sequences = pad_sequence(sequences)
>>> lengths = torch.as_tensor([v.size(0) for v in sequences])
>>> unpadded_sequences = unpad_sequence(padded_sequences, lengths)
>>> torch.allclose(sequences[0], unpadded_sequences[0])
True
>>> torch.allclose(sequences[1], unpadded_sequences[1])
True
>>> torch.allclose(sequences[2], unpadded_sequences[2])
True
Parameters
  • padded_sequences (张量) – 填充序列。

  • 长度 (张量) – 原始(未填充)序列的长度。

  • batch_first (布尔值, 可选) – 是否批次维度在前。默认值:False。

Returns

一个包含 Tensor 对象的列表

Return type

列表[张量]

优云智算