ai.onnx.ReverseSequence

ai.onnx · standard ONNX operator · ONNX opset ≥ 10

Description

Reverses variable-length sequences in a batch along a time axis. For each batch slice i, the first sequence_lens[i] elements along time_axis are reversed in place; elements beyond that length are copied unchanged. The output has the same shape as the input.

See the ONNX ReverseSequence spec for the reference semantics.

Inputs

Name Bind key Logical dtype WebGPU storage Rank Shape Description Presence
input input T runtime-selected; narrow integers and bool use 32-bit slots Input tensor of rank 2 or greater containing the batch of sequences to reverse. required
sequence_lens sequence_lens I uint32 1 Logical int64 1-D tensor of shape [batch_size] specifying each non-negative sequence length; WebGPU stores it as uint32. required

Outputs

Name Bind key Logical dtype Rank Shape Description Presence
Y y T same as input same as input Output tensor with the same shape as the input, with each sequence reversed up to its specified length. required

Attributes

Default values (overridable per request):

Attribute Default Description
batch_axis 1 Axis that represents the batch dimension; must be 0 or 1 (default 1).
time_axis 0 Axis that represents the time/sequence dimension to be reversed; must be 0 or 1 (default 0).

Type constraints

Variable Allowed dtypes
T float32, float16, uint32, int32, int16, uint8, int8, bool
I int64

Files

Use with @huggingface/kernels

The loader derives every required output's shape and logical dtype from the manifest contract and this call. It then allocates the result tensors automatically.

The version: 1 option selects the published kernel contract; it is independent of any operator opset, contrib since_version, or model version.

Replace each *Data placeholder with a typed array containing the corresponding input data.

import { getKernel } from "@huggingface/kernels";

const kernel = await getKernel("webgpu-kernels/ai.onnx.ReverseSequence", { version: 1 });
const { y } = await kernel({
  input: { data: inputData, shape: [4, 2, 1] },
  sequence_lens: { data: sequence_lensData, shape: [2] },
});
Downloads last month
-
kernel
webgpu
wgsl
apache-2.0
WebGPU

Requires WebGPU support. See the compatibility table.