Comparison: onnx OpSchema vs onnx_light LightOpSchema#

This page programmatically compares the operator schemas exposed by the reference onnx package (onnx.defs.OpSchema) with the lightweight schemas exposed by onnx_light (LightOpSchema, from the C++ onnx_op extension).

For every operator known to either side the table below reports:

  • whether the operator is described by an OpSchema (onnx);

  • whether the operator is described by a LightOpSchema (onnx_light);

  • whether a shape-inference function is registered on the onnx side (OpSchema.has_type_and_shape_inference_function);

  • whether a shape-inference function is registered on the onnx_light side. Shape inference for onnx_light lives in the onnx_optim library (onnx_light/onnx_optim/shapes/shape_inference.cc), separate from the schema definitions themselves;

  • how many node backend tests exercise the operator in each package. A test case is attributed to the op_type of the first node of its model — the convention used by the ONNX node backend test suite, and also the one used by the test cases generated by onnx_light.backend.test.case.base.collect_test_case().

Note

The page is regenerated every time the documentation is built, so the numbers always reflect the operator schemas and backend tests shipped with the installed onnx and onnx_light packages. When the reference onnx package is not installed, the onnx-side columns are reported as empty / zero.


Summary#

Metric

onnx

onnx_light

Operators with a schema

223

73

Operators with shape inference

212

23

Node backend tests (counted)

1678

105


Per-operator comparison#

The table below is rendered with the sphinx-datatables extension, so it is interactive: use the search box to filter operators by any column (domain, name, yes/no flags, test counts) and click on a column header to sort the table by that column (click again to toggle ascending / descending order).

Domain

Operator

onnx

onnx_light

onnx shape inference

onnx_light shape inference (onnx_optim)

onnx backend tests

onnx_light backend tests

ai.onnx

Abs

yes

yes

yes

yes

10

1

ai.onnx

Acos

yes

yes

yes

yes

2

1

ai.onnx

Acosh

yes

yes

yes

yes

2

1

ai.onnx

Add

yes

yes

yes

yes

8

2

ai.onnx

AffineGrid

yes

no

yes

no

4

0

ai.onnx

And

yes

yes

yes

yes

8

10

ai.onnx

ArgMax

yes

yes

yes

no

16

0

ai.onnx

ArgMin

yes

yes

yes

no

16

0

ai.onnx

Asin

yes

yes

yes

no

2

0

ai.onnx

Asinh

yes

yes

yes

no

2

0

ai.onnx

Atan

yes

no

yes

no

2

0

ai.onnx

Atanh

yes

no

yes

no

2

0

ai.onnx

Attention

yes

no

yes

no

62

0

ai.onnx

AveragePool

yes

yes

yes

yes

20

11

ai.onnx

BatchNormalization

yes

no

yes

no

4

0

ai.onnx

Bernoulli

yes

no

yes

no

3

0

ai.onnx

BitCast

yes

no

yes

no

10

0

ai.onnx

BitShift

yes

no

yes

no

8

0

ai.onnx

BitwiseAnd

yes

no

yes

no

4

0

ai.onnx

BitwiseNot

yes

no

yes

no

3

0

ai.onnx

BitwiseOr

yes

no

yes

no

4

0

ai.onnx

BitwiseXor

yes

no

yes

no

4

0

ai.onnx

BlackmanWindow

yes

yes

yes

no

2

2

ai.onnx

Cast

yes

yes

yes

yes

125

4

ai.onnx

CastLike

yes

no

yes

no

56

0

ai.onnx

Ceil

yes

no

yes

no

2

0

ai.onnx

Celu

yes

no

yes

no

1

0

ai.onnx

CenterCropPad

yes

no

yes

no

6

0

ai.onnx

Clip

yes

no

yes

no

12

0

ai.onnx

Col2Im

yes

no

yes

no

5

0

ai.onnx

Compress

yes

no

yes

no

4

0

ai.onnx

Concat

yes

yes

yes

yes

12

2

ai.onnx

ConcatFromSequence

yes

yes

yes

no

0

0

ai.onnx

Constant

yes

yes

yes

yes

197

1

ai.onnx

ConstantOfShape

yes

no

yes

no

3

0

ai.onnx

Conv

yes

no

yes

no

6

0

ai.onnx

ConvInteger

yes

no

yes

no

2

0

ai.onnx

ConvTranspose

yes

no

yes

no

11

0

ai.onnx

Cos

yes

yes

yes

no

2

0

ai.onnx

Cosh

yes

yes

yes

no

2

0

ai.onnx

CumProd

yes

no

yes

no

9

0

ai.onnx

CumSum

yes

no

yes

no

9

0

ai.onnx

DFT

yes

no

yes

no

10

0

ai.onnx

DeformConv

yes

no

yes

no

4

0

ai.onnx

DepthToSpace

yes

no

yes

no

2

0

ai.onnx

DequantizeLinear

yes

no

yes

no

14

0

ai.onnx

Det

yes

no

yes

no

2

0

ai.onnx

Div

yes

yes

yes

no

10

5

ai.onnx

Dropout

yes

no

yes

no

12

0

ai.onnx

DynamicQuantizeLinear

yes

no

yes

no

3

0

ai.onnx

Einsum

yes

no

yes

no

6

0

ai.onnx

Elu

yes

no

yes

no

3

0

ai.onnx

Equal

yes

yes

yes

no

10

0

ai.onnx

Erf

yes

no

yes

no

1

0

ai.onnx

Exp

yes

no

yes

no

4

0

ai.onnx

Expand

yes

no

yes

no

2

0

ai.onnx

EyeLike

yes

no

yes

no

3

0

ai.onnx

Flatten

yes

no

yes

no

9

0

ai.onnx

Floor

yes

no

yes

no

2

0

ai.onnx

GRU

yes

yes

yes

no

4

0

ai.onnx

Gather

yes

no

yes

no

4

0

ai.onnx

GatherElements

yes

no

yes

no

3

0

ai.onnx

GatherND

yes

no

yes

no

3

0

ai.onnx

Gelu

yes

no

yes

no

4

0

ai.onnx

Gemm

yes

yes

yes

no

11

0

ai.onnx

GlobalAveragePool

yes

no

yes

no

2

0

ai.onnx

GlobalLpPool

yes

no

yes

no

0

0

ai.onnx

GlobalMaxPool

yes

no

yes

no

2

0

ai.onnx

Greater

yes

yes

yes

yes

16

4

ai.onnx

GreaterOrEqual

yes

no

yes

no

8

0

ai.onnx

GridSample

yes

no

yes

no

18

0

ai.onnx

GroupNormalization

yes

no

no

no

2

0

ai.onnx

HammingWindow

yes

no

yes

no

2

0

ai.onnx

HannWindow

yes

no

yes

no

2

0

ai.onnx

HardSigmoid

yes

no

yes

no

4

0

ai.onnx

HardSwish

yes

no

yes

no

1

0

ai.onnx

Hardmax

yes

no

yes

no

7

0

ai.onnx

Identity

yes

no

yes

no

5

0

ai.onnx

If

yes

yes

yes

yes

3

2

ai.onnx

ImageDecoder

yes

yes

yes

no

9

0

ai.onnx

InstanceNormalization

yes

no

yes

no

2

0

ai.onnx

IsInf

yes

no

yes

no

4

0

ai.onnx

IsNaN

yes

no

yes

no

2

0

ai.onnx

LRN

yes

no

yes

no

2

0

ai.onnx

LSTM

yes

yes

yes

no

4

0

ai.onnx

LayerNormalization

yes

no

yes

no

19

0

ai.onnx

LeakyRelu

yes

no

yes

no

3

0

ai.onnx

Less

yes

yes

yes

yes

26

4

ai.onnx

LessOrEqual

yes

no

yes

no

8

0

ai.onnx

Log

yes

no

yes

no

2

0

ai.onnx

LogSoftmax

yes

no

yes

no

7

0

ai.onnx

Loop

yes

no

yes

no

3

0

ai.onnx

LpNormalization

yes

no

yes

no

6

0

ai.onnx

LpPool

yes

no

yes

no

8

0

ai.onnx

MatMul

yes

yes

yes

no

7

0

ai.onnx

MatMulInteger

yes

no

yes

no

1

0

ai.onnx

Max

yes

no

yes

no

14

0

ai.onnx

MaxPool

yes

no

yes

no

19

0

ai.onnx

MaxRoiPool

yes

no

yes

no

0

0

ai.onnx

MaxUnpool

yes

no

yes

no

2

0

ai.onnx

Mean

yes

no

yes

no

3

0

ai.onnx

MeanVarianceNormalization

yes

no

no

no

1

0

ai.onnx

MelWeightMatrix

yes

no

yes

no

1

0

ai.onnx

Min

yes

no

yes

no

14

0

ai.onnx

Mish

yes

no

yes

no

1

0

ai.onnx

Mod

yes

yes

yes

no

13

0

ai.onnx

Mul

yes

yes

yes

no

27

5

ai.onnx

Multinomial

yes

no

yes

no

0

0

ai.onnx

Neg

yes

no

yes

no

2

0

ai.onnx

NegativeLogLikelihoodLoss

yes

no

yes

no

18

0

ai.onnx

NonMaxSuppression

yes

no

yes

no

10

0

ai.onnx

NonZero

yes

no

yes

no

1

0

ai.onnx

Not

yes

yes

yes

no

3

0

ai.onnx

OneHot

yes

no

yes

no

4

0

ai.onnx

Optional

yes

yes

yes

yes

0

1

ai.onnx

OptionalGetElement

yes

yes

yes

no

4

0

ai.onnx

OptionalHasElement

yes

yes

yes

no

7

0

ai.onnx

Or

yes

yes

yes

no

8

10

ai.onnx

PRelu

yes

no

yes

no

2

0

ai.onnx

Pad

yes

no

yes

no

6

0

ai.onnx

Pow

yes

yes

yes

no

12

0

ai.onnx

QLinearConv

yes

no

yes

no

1

0

ai.onnx

QLinearMatMul

yes

no

yes

no

8

0

ai.onnx

QuantizeLinear

yes

yes

yes

yes

13

2

ai.onnx

RMSNormalization

yes

no

yes

no

19

0

ai.onnx

RNN

yes

yes

yes

no

4

0

ai.onnx

RandomNormal

yes

no

yes

no

0

0

ai.onnx

RandomNormalLike

yes

no

yes

no

0

0

ai.onnx

RandomUniform

yes

no

yes

no

0

0

ai.onnx

RandomUniformLike

yes

no

yes

no

3

0

ai.onnx

Range

yes

no

yes

no

2

0

ai.onnx

Reciprocal

yes

no

yes

no

2

0

ai.onnx

ReduceL1

yes

yes

yes

no

9

0

ai.onnx

ReduceL2

yes

yes

yes

no

9

0

ai.onnx

ReduceLogSum

yes

yes

yes

no

5

0

ai.onnx

ReduceLogSumExp

yes

yes

yes

no

9

0

ai.onnx

ReduceMax

yes

yes

yes

no

10

0

ai.onnx

ReduceMean

yes

yes

yes

no

8

0

ai.onnx

ReduceMin

yes

yes

yes

no

10

0

ai.onnx

ReduceProd

yes

yes

yes

no

9

0

ai.onnx

ReduceSum

yes

yes

yes

yes

17

3

ai.onnx

ReduceSumSquare

yes

yes

yes

no

9

0

ai.onnx

RegexFullMatch

yes

yes

yes

no

3

0

ai.onnx

Relu

yes

no

yes

no

1

0

ai.onnx

Reshape

yes

no

yes

yes

10

0

ai.onnx

Resize

yes

no

yes

no

39

0

ai.onnx

ReverseSequence

yes

no

yes

no

2

0

ai.onnx

RoiAlign

yes

yes

yes

yes

3

2

ai.onnx

RotaryEmbedding

yes

no

yes

no

8

0

ai.onnx

Round

yes

no

yes

no

1

0

ai.onnx

STFT

yes

no

yes

no

2

0

ai.onnx

Scan

yes

no

yes

no

2

0

ai.onnx

Scatter

yes

no

yes

no

2

0

ai.onnx

ScatterElements

yes

no

yes

no

6

0

ai.onnx

ScatterND

yes

no

yes

no

5

0

ai.onnx

Selu

yes

no

yes

no

3

0

ai.onnx

SequenceAt

yes

yes

yes

no

0

0

ai.onnx

SequenceConstruct

yes

yes

yes

yes

0

2

ai.onnx

SequenceEmpty

yes

yes

yes

no

0

0

ai.onnx

SequenceErase

yes

yes

yes

no

0

0

ai.onnx

SequenceInsert

yes

yes

yes

no

2

0

ai.onnx

SequenceLength

yes

yes

yes

no

6

0

ai.onnx

SequenceMap

yes

yes

yes

no

6

0

ai.onnx

Shape

yes

no

yes

no

73

0

ai.onnx

Shrink

yes

no

yes

no

2

0

ai.onnx

Sigmoid

yes

no

yes

no

2

0

ai.onnx

Sign

yes

no

yes

no

1

0

ai.onnx

Sin

yes

yes

yes

no

2

0

ai.onnx

Sinh

yes

yes

yes

no

2

0

ai.onnx

Size

yes

no

yes

no

2

0

ai.onnx

Slice

yes

no

yes

no

8

0

ai.onnx

Softmax

yes

no

yes

no

7

0

ai.onnx

SoftmaxCrossEntropyLoss

yes

no

yes

no

34

0

ai.onnx

Softplus

yes

no

yes

no

3

0

ai.onnx

Softsign

yes

no

yes

no

2

0

ai.onnx

SpaceToDepth

yes

no

yes

no

2

0

ai.onnx

Split

yes

no

yes

no

16

0

ai.onnx

SplitToSequence

yes

yes

yes

no

3

0

ai.onnx

Sqrt

yes

no

yes

no

2

0

ai.onnx

Squeeze

yes

no

yes

no

2

0

ai.onnx

StringConcat

yes

yes

yes

yes

5

5

ai.onnx

StringNormalizer

yes

yes

yes

no

6

0

ai.onnx

StringSplit

yes

yes

yes

no

6

0

ai.onnx

Sub

yes

yes

yes

no

11

5

ai.onnx

Sum

yes

no

yes

no

3

0

ai.onnx

Swish

yes

no

yes

no

1

0

ai.onnx

Tan

yes

no

yes

no

2

0

ai.onnx

Tanh

yes

no

yes

no

2

0

ai.onnx

TensorScatter

yes

no

yes

no

3

0

ai.onnx

TfIdfVectorizer

yes

no

yes

no

7

0

ai.onnx

ThresholdedRelu

yes

no

yes

no

3

0

ai.onnx

Tile

yes

no

yes

no

2

0

ai.onnx

TopK

yes

no

yes

no

7

0

ai.onnx

Transpose

yes

no

yes

no

7

0

ai.onnx

Trilu

yes

no

yes

no

18

0

ai.onnx

Unique

yes

no

yes

no

6

0

ai.onnx

Unsqueeze

yes

no

yes

no

7

0

ai.onnx

Upsample

yes

no

yes

no

1

0

ai.onnx

Where

yes

no

yes

no

2

0

ai.onnx

Xor

yes

yes

yes

no

8

10

ai.onnx.ml

ArrayFeatureExtractor

yes

no

yes

no

1

0

ai.onnx.ml

Binarizer

yes

yes

yes

yes

1

2

ai.onnx.ml

CastMap

yes

no

yes

no

0

0

ai.onnx.ml

CategoryMapper

yes

no

yes

no

0

0

ai.onnx.ml

DictVectorizer

yes

no

yes

no

0

0

ai.onnx.ml

FeatureVectorizer

yes

no

no

no

0

0

ai.onnx.ml

Imputer

yes

no

no

no

0

0

ai.onnx.ml

LabelEncoder

yes

yes

yes

yes

4

2

ai.onnx.ml

LinearClassifier

yes

no

yes

no

0

0

ai.onnx.ml

LinearRegressor

yes

no

no

no

0

0

ai.onnx.ml

Normalizer

yes

no

no

no

0

0

ai.onnx.ml

OneHotEncoder

yes

no

yes

no

0

0

ai.onnx.ml

SVMClassifier

yes

no

yes

no

0

0

ai.onnx.ml

SVMRegressor

yes

no

no

no

0

0

ai.onnx.ml

Scaler

yes

no

no

no

0

0

ai.onnx.ml

TreeEnsemble

yes

yes

yes

no

2

0

ai.onnx.ml

TreeEnsembleClassifier

yes

yes

no

no

0

0

ai.onnx.ml

TreeEnsembleRegressor

yes

yes

no

no

0

0

ai.onnx.ml

ZipMap

yes

yes

yes

no

0

0

ai.onnx.preview

FlexAttention

no

yes

no

yes

0

2

ai.onnx.preview.training

Adagrad

yes

no

yes

no

2

0

ai.onnx.preview.training

Adam

yes

yes

yes

yes

2

4

ai.onnx.preview.training

Gradient

yes

yes

no

no

0

0

ai.onnx.preview.training

Momentum

yes

no

yes

no

3

0


See also#