ai.onnx.AveragePool
ai.onnx · standard ONNX operator · ONNX opset ≥ 19
Description
Applies average pooling over a sliding kernel window on input tensor X, computing the mean of values within each window position and writing results to Y. Output spatial dimensions are determined by kernel_shape, strides, dilations, pads, and ceil_mode; padded positions are excluded from the average by default unless count_include_pad is set.
See the ONNX AveragePool spec for the reference semantics.
Inputs
| Name | Bind key | Logical dtype | Rank | Shape | Description | Presence |
|---|---|---|---|---|---|---|
X |
x |
T |
— | — | Input data tensor of shape (N x C x D1 x D2 ... Dn), where N is the batch size and C is the number of channels. |
required |
Outputs
| Name | Bind key | Logical dtype | Rank | Shape | Description | Presence |
|---|---|---|---|---|---|---|
Y |
y |
T |
same as X |
derived; see description | Output tensor with pooled values; spatial dimensions vary based on kernel, stride, dilation, and pad settings. | required |
Attributes
Attributes and default values (overridable per request):
| Attribute | Default | Description |
|---|---|---|
auto_pad |
"NOTSET" |
Deprecated auto-padding mode: NOTSET (use explicit pads), SAME_UPPER, SAME_LOWER (pad so output size is ceil(input / stride)), or VALID (no padding). |
count_include_pad |
0 |
When non-zero, pad pixels are counted in the divisor when computing the average; defaults to 0 (exclude pad). |
ceil_mode |
0 |
When non-zero, uses ceiling instead of floor when computing the output spatial shape; defaults to 0. |
kernel_shape |
— | Required kernel shape, with one positive value per spatial axis. |
strides |
— | Stride along each spatial axis. When omitted, every stride is 1. |
pads |
— | Padding at the beginning and end of each spatial axis, ordered as [begin_0, ..., begin_n, end_0, ..., end_n]. When omitted, every pad is 0. |
dilations |
— | Dilation along each spatial axis. When omitted, every dilation is 1. |
Type constraints
| Variable | Allowed dtypes |
|---|---|
T |
float32, float16 |
Files
metadata.json— kernel metadata (id, digests, provenance)manifest.json— the op contract (source of truth)test.json— correctness casesbench.json— benchmark + tuning casesaverage-pool2d-nchw-horizontal-reuse.wgsl.jinjaaverage-pool2d-nchw-w3s1-reuse.wgsl.jinjapool-global-reduction.wgsl.jinjapool-window-nd.wgsl.jinjapool-window-unroll.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.AveragePool", { version: 1 });
const { y } = await kernel({ x: { data: xData, shape: [1, 3, 32] } }, {
attrs: { kernel_shape: [2] },
});
- Downloads last month
- -
Requires WebGPU support. See the compatibility table.