A node’s op_type
names an operator of the operator set that its domain and the model’s
opset_import select. The set itself is not in the file; these tables, from
ONNX’s Operators.md and Operators-ml.md and the operator
pages at onnx.ai, say what each name
means. The “Since” column is the opset of the operator’s latest definition, as listed in
November 2026. An operator named here but changed by a later opset keeps its name.
A name not listed here belongs to a custom domain or to a
function local to the model.
Attributes are listed by name; those names mean the same across operators and are
explained in the attribute table at the end. The
inputs, outputs and full type constraints of each operator are in the ONNX operator
documents and are not repeated here. The explorer adds each operator’s line here to its
note on op_type and on the attribute’s name, and to its table of
operators used.
ai.onnx: the default set
| Operator | Since | What it does | Attributes |
|---|---|---|---|
| Abs | 13 | Absolute value of each element. | |
| Acos | 22 | Arccosine of each element. | |
| Acosh | 22 | Inverse hyperbolic cosine of each element. | |
| Add | 14 | Adds two tensors element by element, with broadcasting. | |
| And | 7 | Logical AND, element by element, with broadcasting. | |
| ArgMax | 13 | Indices of the largest elements along an axis. | axis, keepdims, select_last_index |
| ArgMin | 13 | Indices of the smallest elements along an axis. | axis, keepdims, select_last_index |
| Asin | 22 | Arcsine of each element. | |
| Asinh | 22 | Inverse hyperbolic sine of each element. | |
| Atan | 22 | Arctangent of each element. | |
| Atanh | 22 | Inverse hyperbolic tangent of each element. | |
| AveragePool | 22 | Average pooling over windows of the spatial dimensions. | auto_pad, ceil_mode, count_include_pad, dilations, kernel_shape, pads, strides |
| BatchNormalization | 15 | Batch normalisation, with stored or computed mean and variance. | epsilon, momentum, training_mode |
| BitCast | 26 | Reinterprets a tensor’s bits as another type of the same width. | to |
| BitShift | 28 | Shifts unsigned integers left or right. | direction |
| BitwiseAnd | 18 | Bitwise AND of integers, with broadcasting. | |
| BitwiseNot | 18 | Bitwise NOT of integers. | |
| BitwiseOr | 18 | Bitwise OR of integers, with broadcasting. | |
| BitwiseXor | 18 | Bitwise XOR of integers, with broadcasting. | |
| Cast | 28 | Converts a tensor to another data type. | to, saturate, round_mode |
| Ceil | 13 | Rounds each element up. | |
| Col2Im | 18 | Rebuilds images from columns of blocks. | dilations, pads, strides |
| Compress | 28 | Selects elements where a boolean condition is true. | axis |
| Concat | 13 | Joins tensors along an existing axis. | axis |
| ConcatFromSequence | 11 | Joins a sequence of tensors, optionally along a new axis. | axis, new_axis |
| Constant | 25 | Produces a constant given in its attributes. | sparse_value, value, value_float, value_floats, value_int, value_ints, value_string, value_strings |
| ConstantOfShape | 25 | A tensor of a given shape, filled with one value. | value |
| Conv | 22 | Convolution over the spatial dimensions. | auto_pad, dilations, group, kernel_shape, pads, strides |
| ConvInteger | 10 | Convolution of integers with zero points. | auto_pad, dilations, group, kernel_shape, pads, strides |
| ConvTranspose | 22 | Transposed convolution. | auto_pad, dilations, group, kernel_shape, output_padding, output_shape, pads, strides |
| Cos | 22 | Cosine of each element. | |
| Cosh | 22 | Hyperbolic cosine of each element. | |
| CumProd | 26 | Running product along an axis. | exclusive, reverse |
| CumSum | 14 | Running sum along an axis. | exclusive, reverse |
| DFT | 20 | Discrete Fourier transform. | inverse, onesided |
| DeformConv | 22 | Deformable convolution. | dilations, group, kernel_shape, pads, strides |
| DequantizeLinear | 28 | Converts a quantised tensor back to full precision. | axis, block_size |
| Det | 22 | Determinant of square matrices. | |
| Div | 14 | Divides two tensors element by element. | |
| Dropout | 22 | Randomly zeroes elements when training. | seed |
| Einsum | 28 | Einstein summation. | equation |
| Equal | 19 | True where elements are equal. | |
| Erf | 13 | Error function. | |
| Exp | 13 | Exponential. | |
| Expand | 13 | Broadcasts to a given shape. | |
| EyeLike | 22 | Ones on a diagonal, shaped like the input. | dtype, k |
| Flatten | 25 | Flattens a tensor into a matrix. | axis |
| Floor | 13 | Rounds each element down. | |
| GRU | 22 | Gated recurrent unit network. | activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset |
| Gather | 13 | Takes slices along an axis. | axis |
| GatherElements | 13 | Takes elements at per-element indices. | axis |
| GatherND | 13 | Takes slices by multi-dimensional indices. | batch_dims |
| GlobalAveragePool | 22 | Averages over all spatial dimensions. | |
| GlobalLpPool | 22 | Lp norm over all spatial dimensions. | p |
| GlobalMaxPool | 22 | Maximum over all spatial dimensions. | |
| Greater | 13 | True where the first is larger. | |
| GridSample | 22 | Samples a tensor at positions given by a grid. | align_corners, mode, padding_mode |
| Hardmax | 13 | One at the largest element of an axis. | axis |
| Identity | 25 | Passes its input through. | |
| If | 25 | Runs one of two subgraphs. | else_branch, then_branch |
| ImageDecoder | 20 | Decodes encoded image bytes. | pixel_format |
| InstanceNormalization | 22 | Normalises each sample and channel. | epsilon |
| IsInf | 20 | True where an element is infinite. | detect_negative, detect_positive |
| IsNaN | 20 | True where an element is not a number. | |
| LRN | 13 | Local response normalisation. | alpha, beta, bias, size |
| LSTM | 22 | Long short-term memory network. | activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget, layout |
| Less | 13 | True where the first is smaller. | |
| Log | 13 | Natural logarithm. | |
| Loop | 25 | Runs a subgraph repeatedly. | body |
| LpNormalization | 22 | Normalises by the Lp norm. | axis, p |
| LpPool | 22 | Lp pooling over windows. | auto_pad, ceil_mode, dilations, kernel_shape, p, pads, strides |
| MatMul | 13 | Matrix multiplication, as NumPy’s matmul. | |
| MatMulInteger | 10 | Matrix multiplication of integers. | |
| Max | 13 | Element-wise maximum. | |
| MaxPool | 22 | Maximum pooling over windows. | auto_pad, ceil_mode, dilations, kernel_shape, pads, storage_order, strides |
| MaxRoiPool | 22 | Maximum pooling over regions of interest. | pool_shape, roi_scale |
| MaxUnpool | 22 | Puts values back at the pooled positions. | kernel_shape, pads, strides |
| Mean | 13 | Element-wise mean. | |
| MelWeightMatrix | 17 | Weights from a linear spectrum to mel bands. | output_datatype |
| Min | 13 | Element-wise minimum. | |
| Mod | 28 | Remainder of division. | fmod |
| Mul | 14 | Multiplies two tensors element by element. | |
| Multinomial | 22 | Samples class indices. | dtype, sample_size, seed |
| Neg | 13 | Negates each element. | |
| NonMaxSuppression | 11 | Picks boxes by score, dropping overlaps. | center_point_box |
| NonZero | 13 | Indices of non-zero elements. | |
| Not | 1 | Logical NOT. | |
| OneHot | 28 | Turns indices into one-hot vectors. | axis |
| Optional | 28 | Makes an optional, holding the input or empty. | type |
| OptionalGetElement | 28 | Gets the value out of an optional. | |
| OptionalHasElement | 28 | True if an optional holds a value. | |
| Or | 7 | Logical OR. | |
| Pad | 25 | Pads a tensor by given amounts. | mode |
| Pow | 15 | Raises to a power. | |
| QLinearConv | 10 | Convolution of quantised tensors. | auto_pad, dilations, group, kernel_shape, pads, strides |
| QLinearMatMul | 21 | Matrix multiplication of quantised tensors. | |
| QuantizeLinear | 28 | Converts to integers with a scale and zero point. | axis, block_size, output_dtype, precision |
| RNN | 22 | Plain recurrent network. | activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout |
| RandomNormal | 22 | Normally distributed random values. | dtype, mean, scale, seed, shape |
| RandomNormalLike | 22 | Normal random values, shaped like the input. | dtype, mean, scale, seed |
| RandomUniform | 22 | Uniform random values. | dtype, high, low, seed, shape |
| RandomUniformLike | 22 | Uniform random values, shaped like the input. | dtype, high, low, seed |
| Reciprocal | 13 | One divided by each element. | |
| ReduceMax | 20 | Largest along given axes. | keepdims, noop_with_empty_axes |
| ReduceMean | 18 | Mean along given axes. | keepdims, noop_with_empty_axes |
| ReduceMin | 20 | Smallest along given axes. | keepdims, noop_with_empty_axes |
| ReduceProd | 18 | Product along given axes. | keepdims, noop_with_empty_axes |
| ReduceSum | 13 | Sum along given axes. | keepdims, noop_with_empty_axes |
| RegexFullMatch | 20 | True where a whole string matches a pattern. | pattern |
| Reshape | 25 | Reshapes a tensor. | allowzero |
| Resize | 19 | Resizes a tensor by sizes or scales. | antialias, axes, coordinate_transformation_mode, cubic_coeff_a, exclude_outside, extrapolation_value, keep_aspect_ratio_policy, mode, nearest_mode |
| ReverseSequence | 28 | Reverses each sequence of a batch. | batch_axis, time_axis |
| RoiAlign | 22 | Crops regions of interest to one size. | coordinate_transformation_mode, mode, output_height, output_width, sampling_ratio |
| Round | 22 | Rounds to the nearest integer, halves to even. | |
| STFT | 17 | Short-time Fourier transform. | onesided |
| Scan | 25 | Runs a subgraph over sequences, with state. | body, num_scan_inputs, scan_input_axes, scan_input_directions, scan_output_axes, scan_output_directions |
| Scatter | 11 | Deprecated: use ScatterElements. | axis |
| ScatterElements | 18 | Writes values at per-element indices. | axis, reduction |
| ScatterND | 18 | Writes values at multi-dimensional indices. | reduction |
| SequenceAt | 11 | Gets one tensor from a sequence. | |
| SequenceConstruct | 11 | Makes a sequence from tensors. | |
| SequenceEmpty | 11 | Makes an empty sequence. | dtype |
| SequenceErase | 11 | Removes one tensor from a sequence. | |
| SequenceInsert | 11 | Inserts a tensor into a sequence. | |
| SequenceLength | 11 | The number of tensors in a sequence. | |
| Shape | 25 | The shape of a tensor, as a tensor. | end, start |
| Sigmoid | 13 | Sigmoid function. | |
| Sign | 13 | The sign of each element. | |
| Sin | 22 | Sine. | |
| Sinh | 22 | Hyperbolic sine. | |
| Size | 25 | The number of elements. | |
| Slice | 13 | Takes a slice along given axes. | |
| Split | 18 | Splits a tensor into pieces. | axis, num_outputs |
| SplitToSequence | 24 | Splits a tensor into a sequence. | axis, keepdims |
| Sqrt | 13 | Square root. | |
| Squeeze | 25 | Removes dimensions of size 1. | |
| StringConcat | 20 | Joins strings. | |
| StringNormalizer | 10 | Strips stop words and changes case. | case_change_action, is_case_sensitive, locale, stopwords |
| StringSplit | 20 | Splits strings on a delimiter. | delimiter, maxsplit |
| Sub | 14 | Subtracts two tensors element by element. | |
| Sum | 13 | Element-wise sum. | |
| Tan | 22 | Tangent. | |
| Tanh | 13 | Hyperbolic tangent. | |
| TensorScatter | 24 | Writes updates into a fixed-size key/value cache. | axis, mode |
| TfIdfVectorizer | 9 | Counts n-grams, weighted by TF-IDF. | max_gram_length, max_skip_count, min_gram_length, mode, ngram_counts, ngram_indexes, pool_int64s, pool_strings, weights |
| Tile | 13 | Repeats a tensor along each dimension. | |
| TopK | 24 | The k largest or smallest along an axis. | axis, largest, sorted |
| Transpose | 25 | Permutes dimensions. | perm |
| Trilu | 14 | The upper or lower triangle. | upper |
| Unique | 28 | The unique elements. | axis, sorted |
| Unsqueeze | 25 | Inserts dimensions of size 1. | |
| Upsample | 10 | Deprecated: use Resize. | mode |
| Where | 16 | Picks elements by a condition. | |
| Xor | 7 | Logical exclusive OR. |
ai.onnx functions
These are defined by a body of other operators, so a runtime that lacks one can still run it by expanding it.
| Operator | Since | What it does | Attributes |
|---|---|---|---|
| AffineGrid | 20 | A sampling grid from affine matrices. | align_corners |
| Attention | 25 | Scaled dot-product attention. | is_causal, kv_num_heads, left_window_size, q_num_heads, qk_matmul_output_mode, right_window_size, scale, softcap, softmax_precision |
| Bernoulli | 22 | Samples 0 or 1 by per-element probability. | dtype, seed |
| BlackmanWindow | 17 | A Blackman window. | output_datatype, periodic |
| CastLike | 25 | Casts to the type of a second tensor. | saturate |
| CausalConvWithState | 27 | A stateful, causal, depthwise 1-D convolution. | activation |
| Celu | 28 | Continuously differentiable exponential linear unit. | alpha |
| CenterCropPad | 18 | Crops or pads around the centre. | axes |
| Clip | 13 | Limits to a minimum and maximum. | |
| DepthToSpace | 28 | Moves channel data into spatial blocks. | blocksize, mode |
| DynamicQuantizeLinear | 11 | Quantises, working out the scale. | |
| Elu | 22 | Exponential linear unit. | alpha |
| Gelu | 20 | Gaussian error linear unit. | approximate |
| Gemm | 29 | General matrix multiplication: alpha × A × B + beta × C. | alpha, beta, transA, transB |
| GreaterOrEqual | 16 | True where the first is larger or equal. | |
| GroupNormalization | 21 | Normalises over groups of channels. | epsilon, num_groups, stash_type |
| GroupedMatMul | 29 | Multiplies each token by its groups’ weight matrices. | |
| HammingWindow | 17 | A Hamming window. | output_datatype, periodic |
| HannWindow | 17 | A Hann window. | output_datatype, periodic |
| HardSigmoid | 22 | Piecewise-linear sigmoid. | alpha, beta |
| HardSwish | 22 | Piecewise swish. | |
| LayerNormalization | 17 | Normalises over the last dimensions. | axis, epsilon, stash_type |
| LeakyRelu | 16 | Rectified unit with a small slope below zero. | alpha |
| LessOrEqual | 16 | True where the first is smaller or equal. | |
| LinearAttention | 27 | Linear attention recurrence for decoding and prefill. | chunk_size, kv_num_heads, q_num_heads, scale, update_rule |
| LogSoftmax | 13 | Logarithm of the softmax. | axis |
| MeanVarianceNormalization | 13 | Zero mean, unit variance over given axes. | axes |
| Mish | 22 | The mish activation function. | |
| NegativeLogLikelihoodLoss | 22 | Negative log likelihood. | ignore_index, reduction |
| PRelu | 16 | Rectified unit with a learned slope. | |
| RMSNormalization | 23 | Divides by the root mean square. | axis, epsilon, stash_type |
| Range | 27 | A sequence of numbers. | |
| ReduceL1 | 18 | L1 norm along axes. | keepdims, noop_with_empty_axes |
| ReduceL2 | 18 | L2 norm along axes. | keepdims, noop_with_empty_axes |
| ReduceLogSum | 28 | Logarithm of the sum. | keepdims, noop_with_empty_axes |
| ReduceLogSumExp | 28 | Logarithm of the sum of exponentials. | keepdims, noop_with_empty_axes |
| ReduceSumSquare | 18 | Sum of squares. | keepdims, noop_with_empty_axes |
| Relu | 14 | Rectified linear unit. | |
| RotaryEmbedding | 23 | Rotary positional embeddings. | interleaved, num_heads, rotary_embedding_dim |
| Selu | 22 | Scaled exponential linear unit. | alpha, gamma |
| SequenceMap | 17 | Runs a subgraph over sequences. | body |
| Shrink | 9 | Shrinks values towards zero. | bias, lambd |
| Softmax | 13 | Normalises to probabilities. | axis |
| SoftmaxCrossEntropyLoss | 13 | Softmax cross-entropy. | ignore_index, reduction |
| Softplus | 22 | The softplus function. | |
| Softsign | 22 | The softsign function. | |
| SpaceToDepth | 28 | Moves spatial blocks into channels. | blocksize |
| SwiGLU | 28 | Swish of a gate input, times a second input. | alpha |
| Swish | 24 | x × sigmoid(alpha × x). | alpha |
| ThresholdedRelu | 22 | Passes values above a threshold. | alpha |
ai.onnx.preview and ai.onnx.preview.training
| Domain | Operator | Since | What it does | Attributes |
|---|---|---|---|---|
| ai.onnx.preview | FlexAttention | 1 | Experimental attention whose scores and probabilities two subgraphs can modify. | prob_mod, scale, score_mod, softmax_precision |
| ai.onnx.preview.training | Adagrad | 1 | One Adagrad step. | decay_factor, epsilon, norm_coefficient |
| ai.onnx.preview.training | Adam | 1 | One Adam step. | alpha, beta, epsilon, norm_coefficient, norm_coefficient_post |
| ai.onnx.preview.training | Gradient | 1 | Gradients of outputs with respect to inputs. | xs, y, zs |
| ai.onnx.preview.training | Momentum | 1 | One momentum step. | alpha, beta, mode, norm_coefficient |
ai.onnx.ml: classical machine learning
| Operator | Since | What it does | Attributes |
|---|---|---|---|
| ArrayFeatureExtractor | 1 | Selects elements by indices from the last axes. | |
| Binarizer | 1 | Maps values to 0 or 1 by a threshold. | threshold |
| CastMap | 1 | Turns a map into a tensor, by key order. | cast_to, map_form, max_map |
| CategoryMapper | 1 | Converts strings to integers and back. | cats_int64s, cats_strings, default_int64, default_string |
| DictVectorizer | 1 | Turns a dictionary into a 1-D array. | int64_vocabulary, string_vocabulary |
| FeatureVectorizer | 1 | Joins tensors into one output. | inputdimensions |
| Imputer | 1 | Replaces one value with another. | imputed_value_floats, imputed_value_int64s, replaced_value_float, replaced_value_int64 |
| LabelEncoder | 4 | Maps each element through keys and values. | default_float, default_int64, default_string, default_tensor, keys_floats, keys_int64s, keys_strings, keys_tensor, values_floats, values_int64s, values_strings, values_tensor |
| LinearClassifier | 1 | A linear classifier. | classlabels_ints, classlabels_strings, coefficients, intercepts, multi_class, post_transform |
| LinearRegressor | 1 | A generalised linear regression. | coefficients, intercepts, post_transform, targets |
| Normalizer | 1 | Normalises by MAX, L1 or L2. | norm |
| OneHotEncoder | 1 | Turns a category into ones and zeros. | cats_int64s, cats_strings, zeros |
| SVMClassifier | 1 | A support vector machine classifier. | classlabels_ints, classlabels_strings, coefficients, kernel_params, kernel_type, post_transform, prob_a, prob_b, rho, support_vectors, vectors_per_class |
| SVMRegressor | 1 | Support vector regression and anomaly detection. | coefficients, kernel_params, kernel_type, n_supports, one_class, post_transform, rho, support_vectors |
| Scaler | 1 | Rescales data. | offset, scale |
| TreeEnsemble | 5 | Regression values from an ensemble of trees. | aggregate_function, leaf_targetids, leaf_weights, membership_values, n_targets, nodes_falseleafs, nodes_falsenodeids, nodes_featureids, nodes_hitrates, nodes_missing_value_tracks_true, nodes_modes, nodes_splits, nodes_trueleafs, nodes_truenodeids, post_transform, tree_roots |
| TreeEnsembleClassifier | 5 | Deprecated: the top class of an ensemble of trees. Use TreeEnsemble with ArgMax. | base_values, class_ids, class_nodeids, class_treeids, class_weights, classlabels_int64s, classlabels_strings, nodes_falsenodeids, nodes_featureids, nodes_hitrates, nodes_missing_value_tracks_true, nodes_modes, nodes_nodeids, nodes_treeids, nodes_truenodeids, nodes_values, post_transform, and the _as_tensor forms of the numeric lists |
| TreeEnsembleRegressor | 5 | Deprecated: use TreeEnsemble. Regression from an ensemble of trees. | aggregate_function, base_values, n_targets, nodes_falsenodeids, nodes_featureids, nodes_hitrates, nodes_missing_value_tracks_true, nodes_modes, nodes_nodeids, nodes_treeids, nodes_truenodeids, nodes_values, post_transform, target_ids, target_nodeids, target_treeids, target_weights, and the _as_tensor forms |
| ZipMap | 1 | Makes a map from input values and given keys. | classlabels_int64s, classlabels_strings |
What the attributes mean
Each name above has one meaning across the operators that use it. Attribute names not listed below are specific to one operator and are described in its document.
| Name | Meaning |
|---|---|
| auto_pad | How padding is worked out: NOTSET, SAME_UPPER, SAME_LOWER or VALID. |
| axis, axes | The axis or axes to act on; negative counts from the last. |
| batch_dims | How many leading dimensions are batch dimensions. |
| body | The subgraph to run. |
| ceil_mode | Whether to use ceiling rather than floor when computing the output shape. |
| coordinate_transformation_mode | How output coordinates map to input coordinates. |
| count_include_pad | Whether padded elements count in the average. |
| dilations | The spacing between kernel elements along each axis. |
| direction | RIGHT or LEFT for shifts; forward, reverse or bidirectional for recurrent cells. |
| dtype, output_datatype, output_dtype | The data type of the output, a TensorProto.DataType. |
| else_branch, then_branch | The subgraphs run when a condition is false or true. |
| epsilon | A small constant that keeps the arithmetic stable. |
| group | How many groups of channels the input is split into. |
| hidden_size | The number of units in the hidden layer. |
| keepdims | Whether reduced dimensions stay, with size 1. |
| kernel_shape | The size of the kernel along each axis. |
| mean, scale, seed | Parameters of a random distribution; for Scaler, the factor. |
| mode | Which variant of the operation to use. |
| noop_with_empty_axes | Whether empty axes mean doing nothing rather than all axes. |
| p | The order of the norm. |
| pads | Padding at the start and end of each axis. |
| perm | The new order of the dimensions. |
| post_transform | What to apply to the scores: NONE, SOFTMAX, LOGISTIC, SOFTMAX_ZERO or PROBIT. |
| reduction | How results combine: none, sum, mean, min, max or mul, as allowed. |
| round_mode, saturate | How out-of-range values are handled when converting. |
| shape | The shape of the output. |
| stash_type | The type used for the first stage of the calculation. |
| strides | The step of the window along each axis. |
| to | The target data type. |
| value, value_float, value_int, value_string and the plurals | The constant. |
Versioning
A model selects operator definitions by its opset_import: for each domain,
an operator means the definition in force at the version named there. An operator
changed in opset 22 still means its old definition in a model that imports opset 13.
The explorer does not know the historical definitions: it gives each operator’s
latest description and its attribute names as listed above, which earlier opsets may
differ from in detail (for example Slice’s bounds moved from attributes to
inputs at opset 10, and axes attributes became inputs at opsets 13 and
18). For an operator’s exact inputs, outputs and types at a given opset, see ONNX’s
Operators.md and
Changelog.md.