ReverseSequence#
Domain:
ai.onnxSince version: 28
Reverse batch of sequences having different lengths specified by sequence_lens.
For each slice i iterating on batch axis, the operator reverses the first sequence_lens[i] elements on time axis, and copies elements whose index’s beyond sequence_lens[i] to the output. So the output slice i contains reversed sequences on the first sequence_lens[i] elements, then have original values copied for the other elements.
Example 1:
input = [[0.0, 4.0, 8.0, 12.0],
[1.0, 5.0, 9.0, 13.0],
[2.0, 6.0, 10.0, 14.0],
[3.0, 7.0, 11.0, 15.0]]
sequence_lens = [4, 3, 2, 1]
time_axis = 0
batch_axis = 1
output = [[3.0, 6.0, 9.0, 12.0],
[2.0, 5.0, 8.0, 13.0],
[1.0, 4.0, 10.0, 14.0],
[0.0, 7.0, 11.0, 15.0]]
Example 2:
input = [[0.0, 1.0, 2.0, 3.0 ],
[4.0, 5.0, 6.0, 7.0 ],
[8.0, 9.0, 10.0, 11.0],
[12.0, 13.0, 14.0, 15.0]]
sequence_lens = [1, 2, 3, 4]
time_axis = 1
batch_axis = 0
output = [[0.0, 1.0, 2.0, 3.0 ],
[5.0, 4.0, 6.0, 7.0 ],
[10.0, 9.0, 8.0, 11.0],
[15.0, 14.0, 13.0, 12.0]]
Inputs
input (T): Tensor of rank r >= 2.
sequence_lens (tensor(int64)): Tensor specifying lengths of the sequences in a batch. It has shape
[batch_size].
Outputs
Y (T): Tensor with same shape of input.
Attributes
batch_axis (int): (Optional) Specify which axis is batch axis. Must be one of 1 (default), or 0.
time_axis (int): (Optional) Specify which axis is time axis. Must be one of 0 (default), or 1.
Type Constraints
T: Input and output types can be of any tensor type. Allowed types: tensor(bfloat16), tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8).
Examples#
test_reversesequence_bfloat16
Node:
ReverseSequence(X, sequence_lens) -> (Y)
Attributes:
time_axis = 1
batch_axis = 0
Inputs:
X: shape=(2, 4), dtype=bfloat16
[[1, 2, 3, 4],
[5, 6, 7, 8]]
sequence_lens: shape=(2,), dtype=int64
[4, 3]
Outputs:
Y: shape=(2, 4), dtype=bfloat16
[[4, 3, 2, 1],
[7, 6, 5, 8]]
Differences with previous version (10)#
SchemaDiff: ReverseSequence (domain 'ai.onnx')
old version: 10
new version: 28
breaking: no
Type constraints:
changed ‘T’: added types: [‘tensor(bfloat16)’]