ai.onnx.Scatter
ai.onnx · standard ONNX operator · ONNX opset ≥ 11
Description
Copies data and overwrites positions identified by indices with values from updates along a single axis. For each element in updates, the index along axis comes from the corresponding indices value, while all other dimension indices come from the element's own position. Deprecated in favor of ScatterElements, which provides identical behavior.
See the ONNX Scatter spec for the reference semantics.
Inputs
| Name | Bind key | Logical dtype | Rank | Shape | Description | Presence |
|---|---|---|---|---|---|---|
data |
data |
T |
— | — | The input tensor to copy; the output has the same shape. | required |
indices |
indices |
I |
— | — | Integer tensor of the same rank as data, specifying the target index along axis for each update. |
required |
updates |
updates |
T |
— | — | Values to scatter into the output; must have the same rank and shape as indices. |
required |
Outputs
| Name | Bind key | Logical dtype | Rank | Shape | Description | Presence |
|---|---|---|---|---|---|---|
output |
output |
T |
same as data |
same as data |
Copy of data with entries overwritten at positions specified by indices. |
required |
Attributes
Default values (overridable per request):
| Attribute | Default | Description |
|---|---|---|
axis |
0 |
The axis of data along which scatter indices are applied. Negative values count from the end; defaults to 0 (the outer-most axis). |
Type constraints
| Variable | Allowed dtypes |
|---|---|
T |
float32, float16, int32, int16, int8, uint32, uint8, 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 casesscatter-flat-copy.wgsl.jinjascatter.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.Scatter", { version: 1 });
const { output } = await kernel({
data: { data: dataData, shape: [1, 3] },
indices: { data: indicesData, shape: [3, 3] },
updates: { data: updatesData, shape: [3, 3] },
});
- Downloads last month
- -
Requires WebGPU support. See the compatibility table.