torch.nn.utils.rnn.pad_sequence¶
- torch.nn.utils.rnn.pad_sequence(sequences, batch_first=False, padding_value=0.0, padding_side='right')[source][source]¶
使用
padding_value
补齐长度可变的张量列表。pad_sequence
沿着新维度堆叠一系列张量,并将它们填充到相同长度。sequences
可以是大小为L x *
的序列列表,其中 L 是序列长度,*
是任意数量的维度(包括0
)。如果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 为最长序列的长度。此函数假设序列中所有张量的尾随维度和数据类型相同。- 参数:
sequences(列表[Tensor])- 可变长度序列的列表。
batch_first(bool,可选)- 如果
True
,输出将采用B x T x *
格式,否则为T x B x *
。padding_value(float,可选)- 填充元素的值。默认:
0
。padding_side (str, 可选) – 填充序列的边。默认:
'right'
.
- 返回值:
如果
batch_first
是False
,则大小为T x B x *
的张量。否则大小为B x T x *
的张量- 返回类型: