oneflow.nn.utils.rnn.pad_sequence¶
-
oneflow.nn.utils.rnn.
pad_sequence
(sequences: Union[oneflow.Tensor, List[oneflow.Tensor]], batch_first: bool = False, padding_value: float = 0.0) → oneflow.Tensor¶ The interface is consistent with PyTorch. The documentation is referenced from: https://pytorch.org/docs/1.10/generated/torch.nn.utils.rnn.pad_sequence.html.
Pad a list of variable length Tensors with
padding_value
pad_sequence
stacks a list of Tensors along a new dimension, and pads them to equal length. For example, if the input is list of sequences with sizeL x *
and if batch_first is False, andT x B x *
otherwise.B is batch size. It is equal to the number of elements in
sequences
. T is length of the longest sequence. L is length of the sequence. * is any number of trailing dimensions, including none.Note
This function returns a Tensor of size
T x B x *
orB x T x *
where T is the length of the longest sequence. This function assumes trailing dimensions and type of all the Tensors in sequences are same.- Parameters
sequences (list[Tensor]) – list of variable length sequences.
batch_first (bool, optional) – output will be in
B x T x *
if True, or inT x B x *
otherwise. Default: False.padding_value (float, optional) – value for padded elements. Default: 0.
- Returns
Tensor of size
T x B x *
ifbatch_first
isFalse
. Tensor of sizeB x T x *
otherwise
For example:
>>> from oneflow.nn.utils.rnn import pad_sequence >>> import oneflow as flow >>> a = flow.ones(25, 300) >>> b = flow.ones(22, 300) >>> c = flow.ones(15, 300) >>> out = pad_sequence([a, b, c]) >>> out.size() oneflow.Size([25, 3, 300])