ai.onnx.GatherElements
ai.onnx · standard ONNX operator · ONNX opset ≥ 13
Description
Gathers values from the data tensor using index positions specified by indices, both of the same rank. For each element in indices, the corresponding output value is read from data by substituting that index along the chosen axis while keeping all other coordinates the same. The output shape equals the shape of indices.
See the ONNX GatherElements spec for the reference semantics.
Inputs
| Name | Bind key | Logical dtype | Rank | Shape | Description | Presence |
|---|---|---|---|---|---|---|
data |
data |
T |
— | — | Source tensor of rank r >= 1 from which values are gathered. |
required |
indices |
indices |
I |
— | — | Integer index tensor of the same rank as data; each value selects a position along axis within bounds [-s, s-1] for axis size s. |
required |
Outputs
| Name | Bind key | Logical dtype | Rank | Shape | Description | Presence |
|---|---|---|---|---|---|---|
output |
output |
T |
same as indices |
same as indices |
Output tensor with the same shape as indices, containing the gathered values from data. |
required |
Attributes
Default values (overridable per request):
| Attribute | Default | Description |
|---|---|---|
axis |
0 |
The axis of data along which indexing is performed. Negative values count from the last dimension; accepted range is [-r, r-1] where r is the rank of data. |
Type constraints
| Variable | Allowed dtypes |
|---|---|
T |
float32, float16, uint32, int32, int16, uint8, int8, bool |
I |
int32 |
Files
metadata.json— kernel metadata (id, digests, provenance)manifest.json— the op contract (source of truth)test.json— correctness casesbench.json— benchmark + tuning casesgather-elements-rank2-vec4.wgsl.jinjagather-elements.wgsl.jinja
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.GatherElements", { version: 1 });
const { output } = await kernel({
data: { data: dataData, shape: [2, 3] },
indices: { data: indicesData, shape: [1, 2] },
});
- Downloads last month
- -
Requires WebGPU support. See the compatibility table.