torch.nn.utils.rnn.unpad_sequence¶
- torch.nn.utils.rnn.unpad_sequence(padded_sequences, lengths, batch_first=False)[source][source]¶
将填充的 Tensor 填充成不同长度的 Tensor 列表。
将填充的 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
- 参数:
padded_sequences (Tensor) – 填充序列。
lengths (Tensor) – 原始(未填充)序列的长度。
batch_first (bool, 可选) – 是否批处理维度在前。默认值:
False
。
- 返回值:
Tensor
对象列表- 返回类型:
list[torch.Tensor]