left_pad_sequence¶
- torchtune.data.left_pad_sequence(sequences: List[Tensor], batch_first: bool = False, padding_value: float = 0) Tensor [源代码]¶
此函数与
torch.nn.utils.rnn.pad_sequence()
相同,但从左侧填充可变长度张量的列表,填充到最长序列的长度。注意
此函数返回大小为
T x B x *
或B x T x *
的张量,其中 T 是最长序列的长度。此函数假设序列中所有张量的尾随维度和类型相同。- 参数:
sequences (List[torch.Tensor]) – 可变长度序列的列表。
batch_first (bool) – 如果为
True
,则输出将为B x T x *
格式,否则为T x B x *
格式。默认值为 False。padding_value (float) – 填充元素的值。默认值为 0。
- 返回值:
如果
batch_first
为False
,则大小为T x B x *
的张量。否则大小为B x T x *
的张量
示例
>>> a = torch.tensor([1, 2, 3]) >>> b = torch.tensor([4, 5, 6, 7]) >>> c = torch.tensor([8, 9, 10, 11, 12]) >>> left_pad_sequence([a, b, c], batch_first=True, padding_value=0) tensor([[ 0, 0, 1, 2, 3], [ 0, 4, 5, 6, 7], [ 8, 9, 10, 11, 12]])