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