onnx 1.16.1__cp38-cp38-win_amd64.whl → 1.17.0__cp38-cp38-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of onnx might be problematic. Click here for more details.
- onnx/__init__.py +3 -1
- onnx/_custom_element_types.py +63 -0
- onnx/backend/base.py +17 -15
- onnx/backend/sample/ops/__init__.py +4 -4
- onnx/backend/sample/ops/abs.py +1 -0
- onnx/backend/test/__init__.py +1 -0
- onnx/backend/test/case/__init__.py +2 -2
- onnx/backend/test/case/base.py +6 -5
- onnx/backend/test/case/model/__init__.py +4 -3
- onnx/backend/test/case/model/expand.py +1 -0
- onnx/backend/test/case/model/gradient.py +1 -0
- onnx/backend/test/case/model/sequence.py +3 -1
- onnx/backend/test/case/model/shrink.py +1 -0
- onnx/backend/test/case/model/sign.py +1 -0
- onnx/backend/test/case/model/single-relu.py +1 -0
- onnx/backend/test/case/model/stringnormalizer.py +1 -1
- onnx/backend/test/case/node/__init__.py +31 -22
- onnx/backend/test/case/node/_image_decoder_data.py +1 -0
- onnx/backend/test/case/node/abs.py +1 -0
- onnx/backend/test/case/node/acos.py +1 -0
- onnx/backend/test/case/node/acosh.py +1 -0
- onnx/backend/test/case/node/adagrad.py +2 -1
- onnx/backend/test/case/node/adam.py +4 -1
- onnx/backend/test/case/node/add.py +1 -0
- onnx/backend/test/case/node/affinegrid.py +1 -0
- onnx/backend/test/case/node/ai_onnx_ml/array_feature_extractor.py +1 -0
- onnx/backend/test/case/node/ai_onnx_ml/binarizer.py +1 -0
- onnx/backend/test/case/node/ai_onnx_ml/label_encoder.py +1 -0
- onnx/backend/test/case/node/ai_onnx_ml/tree_ensemble.py +1 -0
- onnx/backend/test/case/node/and.py +1 -0
- onnx/backend/test/case/node/argmax.py +1 -0
- onnx/backend/test/case/node/argmin.py +1 -0
- onnx/backend/test/case/node/asin.py +1 -0
- onnx/backend/test/case/node/asinh.py +1 -0
- onnx/backend/test/case/node/atan.py +1 -0
- onnx/backend/test/case/node/atanh.py +1 -0
- onnx/backend/test/case/node/averagepool.py +1 -0
- onnx/backend/test/case/node/batchnorm.py +1 -0
- onnx/backend/test/case/node/bernoulli.py +1 -0
- onnx/backend/test/case/node/bitshift.py +1 -0
- onnx/backend/test/case/node/bitwiseand.py +1 -0
- onnx/backend/test/case/node/bitwisenot.py +1 -0
- onnx/backend/test/case/node/bitwiseor.py +1 -0
- onnx/backend/test/case/node/bitwisexor.py +1 -0
- onnx/backend/test/case/node/blackmanwindow.py +13 -3
- onnx/backend/test/case/node/cast.py +2 -1
- onnx/backend/test/case/node/castlike.py +1 -0
- onnx/backend/test/case/node/ceil.py +1 -0
- onnx/backend/test/case/node/celu.py +1 -0
- onnx/backend/test/case/node/center_crop_pad.py +1 -0
- onnx/backend/test/case/node/clip.py +1 -0
- onnx/backend/test/case/node/col2im.py +1 -1
- onnx/backend/test/case/node/compress.py +1 -0
- onnx/backend/test/case/node/concat.py +3 -2
- onnx/backend/test/case/node/constant.py +1 -0
- onnx/backend/test/case/node/constantofshape.py +1 -0
- onnx/backend/test/case/node/conv.py +1 -0
- onnx/backend/test/case/node/convinteger.py +1 -0
- onnx/backend/test/case/node/convtranspose.py +135 -0
- onnx/backend/test/case/node/cos.py +1 -0
- onnx/backend/test/case/node/cosh.py +1 -0
- onnx/backend/test/case/node/cumsum.py +1 -0
- onnx/backend/test/case/node/deformconv.py +17 -26
- onnx/backend/test/case/node/depthtospace.py +1 -0
- onnx/backend/test/case/node/dequantizelinear.py +1 -0
- onnx/backend/test/case/node/det.py +1 -0
- onnx/backend/test/case/node/dft.py +1 -0
- onnx/backend/test/case/node/div.py +1 -0
- onnx/backend/test/case/node/dropout.py +1 -0
- onnx/backend/test/case/node/dynamicquantizelinear.py +1 -0
- onnx/backend/test/case/node/einsum.py +2 -3
- onnx/backend/test/case/node/elu.py +1 -0
- onnx/backend/test/case/node/equal.py +1 -0
- onnx/backend/test/case/node/erf.py +1 -0
- onnx/backend/test/case/node/exp.py +1 -0
- onnx/backend/test/case/node/expand.py +1 -0
- onnx/backend/test/case/node/eyelike.py +1 -0
- onnx/backend/test/case/node/flatten.py +1 -0
- onnx/backend/test/case/node/floor.py +1 -0
- onnx/backend/test/case/node/gather.py +1 -0
- onnx/backend/test/case/node/gatherelements.py +1 -0
- onnx/backend/test/case/node/gathernd.py +1 -0
- onnx/backend/test/case/node/gelu.py +1 -0
- onnx/backend/test/case/node/gemm.py +3 -4
- onnx/backend/test/case/node/globalaveragepool.py +1 -0
- onnx/backend/test/case/node/globalmaxpool.py +1 -0
- onnx/backend/test/case/node/greater.py +1 -0
- onnx/backend/test/case/node/greater_equal.py +1 -0
- onnx/backend/test/case/node/gridsample.py +1 -0
- onnx/backend/test/case/node/groupnormalization.py +1 -0
- onnx/backend/test/case/node/gru.py +3 -2
- onnx/backend/test/case/node/hammingwindow.py +13 -2
- onnx/backend/test/case/node/hannwindow.py +10 -2
- onnx/backend/test/case/node/hardmax.py +1 -0
- onnx/backend/test/case/node/hardsigmoid.py +1 -0
- onnx/backend/test/case/node/hardswish.py +1 -0
- onnx/backend/test/case/node/identity.py +1 -0
- onnx/backend/test/case/node/if.py +1 -0
- onnx/backend/test/case/node/instancenorm.py +1 -0
- onnx/backend/test/case/node/isinf.py +1 -0
- onnx/backend/test/case/node/isnan.py +1 -0
- onnx/backend/test/case/node/layernormalization.py +1 -0
- onnx/backend/test/case/node/leakyrelu.py +1 -0
- onnx/backend/test/case/node/less.py +1 -0
- onnx/backend/test/case/node/less_equal.py +1 -0
- onnx/backend/test/case/node/log.py +1 -0
- onnx/backend/test/case/node/logsoftmax.py +1 -0
- onnx/backend/test/case/node/loop.py +4 -3
- onnx/backend/test/case/node/lppool.py +1 -0
- onnx/backend/test/case/node/lrn.py +1 -0
- onnx/backend/test/case/node/lstm.py +3 -2
- onnx/backend/test/case/node/matmul.py +1 -0
- onnx/backend/test/case/node/matmulinteger.py +1 -0
- onnx/backend/test/case/node/max.py +1 -0
- onnx/backend/test/case/node/maxpool.py +1 -0
- onnx/backend/test/case/node/maxunpool.py +1 -0
- onnx/backend/test/case/node/mean.py +1 -0
- onnx/backend/test/case/node/meanvariancenormalization.py +1 -0
- onnx/backend/test/case/node/melweightmatrix.py +1 -0
- onnx/backend/test/case/node/min.py +1 -0
- onnx/backend/test/case/node/mish.py +1 -0
- onnx/backend/test/case/node/mod.py +1 -0
- onnx/backend/test/case/node/momentum.py +1 -0
- onnx/backend/test/case/node/mul.py +1 -0
- onnx/backend/test/case/node/neg.py +1 -0
- onnx/backend/test/case/node/negativeloglikelihoodloss.py +4 -1
- onnx/backend/test/case/node/nonmaxsuppression.py +1 -0
- onnx/backend/test/case/node/nonzero.py +1 -0
- onnx/backend/test/case/node/not.py +1 -0
- onnx/backend/test/case/node/onehot.py +1 -0
- onnx/backend/test/case/node/optionalgetelement.py +3 -2
- onnx/backend/test/case/node/optionalhaselement.py +2 -3
- onnx/backend/test/case/node/or.py +1 -0
- onnx/backend/test/case/node/pad.py +2 -1
- onnx/backend/test/case/node/pow.py +1 -0
- onnx/backend/test/case/node/prelu.py +1 -0
- onnx/backend/test/case/node/qlinearconv.py +1 -0
- onnx/backend/test/case/node/qlinearmatmul.py +1 -0
- onnx/backend/test/case/node/quantizelinear.py +1 -0
- onnx/backend/test/case/node/rangeop.py +1 -0
- onnx/backend/test/case/node/reciprocal.py +1 -0
- onnx/backend/test/case/node/reduce_log_sum.py +1 -0
- onnx/backend/test/case/node/reduce_log_sum_exp.py +1 -0
- onnx/backend/test/case/node/reducel1.py +1 -0
- onnx/backend/test/case/node/reducel2.py +1 -0
- onnx/backend/test/case/node/reducemax.py +2 -1
- onnx/backend/test/case/node/reducemean.py +1 -0
- onnx/backend/test/case/node/reducemin.py +1 -0
- onnx/backend/test/case/node/reduceprod.py +1 -0
- onnx/backend/test/case/node/reducesum.py +2 -1
- onnx/backend/test/case/node/reducesumsquare.py +1 -0
- onnx/backend/test/case/node/regex_full_match.py +1 -0
- onnx/backend/test/case/node/relu.py +1 -0
- onnx/backend/test/case/node/reshape.py +1 -0
- onnx/backend/test/case/node/resize.py +3 -2
- onnx/backend/test/case/node/reversesequence.py +1 -0
- onnx/backend/test/case/node/rnn.py +3 -2
- onnx/backend/test/case/node/roialign.py +1 -0
- onnx/backend/test/case/node/round.py +4 -3
- onnx/backend/test/case/node/scan.py +1 -0
- onnx/backend/test/case/node/scatter.py +1 -0
- onnx/backend/test/case/node/scatterelements.py +7 -3
- onnx/backend/test/case/node/scatternd.py +1 -0
- onnx/backend/test/case/node/selu.py +1 -0
- onnx/backend/test/case/node/sequence_map.py +1 -0
- onnx/backend/test/case/node/sequenceinsert.py +4 -3
- onnx/backend/test/case/node/shape.py +1 -0
- onnx/backend/test/case/node/shrink.py +1 -0
- onnx/backend/test/case/node/sigmoid.py +1 -0
- onnx/backend/test/case/node/sign.py +1 -0
- onnx/backend/test/case/node/sin.py +1 -0
- onnx/backend/test/case/node/sinh.py +1 -0
- onnx/backend/test/case/node/size.py +1 -0
- onnx/backend/test/case/node/slice.py +1 -0
- onnx/backend/test/case/node/softmax.py +1 -0
- onnx/backend/test/case/node/softmaxcrossentropy.py +4 -1
- onnx/backend/test/case/node/softplus.py +1 -0
- onnx/backend/test/case/node/softsign.py +1 -0
- onnx/backend/test/case/node/spacetodepth.py +1 -0
- onnx/backend/test/case/node/split.py +1 -0
- onnx/backend/test/case/node/splittosequence.py +1 -0
- onnx/backend/test/case/node/sqrt.py +1 -0
- onnx/backend/test/case/node/squeeze.py +1 -0
- onnx/backend/test/case/node/stft.py +4 -1
- onnx/backend/test/case/node/string_concat.py +1 -0
- onnx/backend/test/case/node/string_split.py +1 -0
- onnx/backend/test/case/node/stringnormalizer.py +1 -0
- onnx/backend/test/case/node/sub.py +1 -0
- onnx/backend/test/case/node/sum.py +1 -0
- onnx/backend/test/case/node/tan.py +1 -0
- onnx/backend/test/case/node/tanh.py +1 -0
- onnx/backend/test/case/node/tfidfvectorizer.py +1 -0
- onnx/backend/test/case/node/thresholdedrelu.py +1 -0
- onnx/backend/test/case/node/tile.py +1 -0
- onnx/backend/test/case/node/topk.py +1 -0
- onnx/backend/test/case/node/transpose.py +1 -0
- onnx/backend/test/case/node/trilu.py +1 -0
- onnx/backend/test/case/node/unique.py +7 -0
- onnx/backend/test/case/node/unsqueeze.py +1 -0
- onnx/backend/test/case/node/upsample.py +1 -0
- onnx/backend/test/case/node/where.py +1 -0
- onnx/backend/test/case/node/xor.py +1 -0
- onnx/backend/test/case/test_case.py +6 -5
- onnx/backend/test/case/utils.py +2 -2
- onnx/backend/test/cmd_tools.py +1 -0
- onnx/backend/test/data/node/test_acos/model.onnx +0 -0
- onnx/backend/test/data/node/test_acos/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_acos_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_acosh/model.onnx +0 -0
- onnx/backend/test/data/node/test_acosh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_acosh_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_asin/model.onnx +0 -0
- onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_asin_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_asinh/model.onnx +0 -0
- onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_asinh_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_atan/model.onnx +0 -0
- onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_atan_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_atanh/model.onnx +0 -0
- onnx/backend/test/data/node/test_atanh/test_data_set_0/output_0.pb +2 -2
- onnx/backend/test/data/node/test_atanh_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_1d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_ceil/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_dilations/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_pads/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_precomputed_strides/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_same_lower/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_same_upper/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_strides/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_3d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_0_ceil_mode_is_False/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_0_ceil_mode_is_True/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_False/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_True/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_3d_dilations_small/model.onnx +0 -0
- onnx/backend/test/data/node/test_basic_conv_with_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_basic_conv_without_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_with_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_without_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_bernoulli/model.onnx +0 -0
- onnx/backend/test/data/node/test_bernoulli_double/model.onnx +0 -0
- onnx/backend/test/data/node/test_bernoulli_double_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_bernoulli_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_bernoulli_seed/model.onnx +0 -0
- onnx/backend/test/data/node/test_bernoulli_seed_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_blackmanwindow/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_blackmanwindow_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_blackmanwindow_symmetric/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_blackmanwindow_symmetric_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_INT4/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_cast_FLOAT_to_INT4/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT/test_data_set_0/input_0.pb +1 -1
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT16/test_data_set_0/input_0.pb +1 -1
- onnx/backend/test/data/node/test_cast_INT4_to_INT8/test_data_set_0/input_0.pb +1 -1
- onnx/backend/test/data/node/test_conv_with_autopad_same/model.onnx +0 -0
- onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_conv_with_strides_no_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_conv_with_strides_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_1d/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_3d/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_autopad_same/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_dilations/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_group_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_group_2/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_convtranspose_group_2/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_convtranspose_group_2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_convtranspose_group_2_image_3/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_group_2_image_3/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_convtranspose_group_2_image_3/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_convtranspose_group_2_image_3/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_convtranspose_kernel_shape/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_output_shape/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_convtranspose_pads/model.onnx +0 -0
- onnx/backend/test/data/node/test_cos/model.onnx +0 -0
- onnx/backend/test/data/node/test_cos_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_cosh/model.onnx +0 -0
- onnx/backend/test/data/node/test_cosh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_cosh_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_cosh_example/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_mask_bias/model.onnx +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int4/test_data_set_0/input_0.pb +1 -1
- onnx/backend/test/data/node/test_det_2d/model.onnx +0 -0
- onnx/backend/test/data/node/test_det_nd/model.onnx +0 -0
- onnx/backend/test/data/node/test_dft/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_axis/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_axis_opset19/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_inverse/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_inverse_opset19/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_opset19/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dropout_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_dropout_default_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_dropout_default_mask_ratio/model.onnx +0 -0
- onnx/backend/test/data/node/test_dropout_default_ratio/model.onnx +0 -0
- onnx/backend/test/data/node/test_elu/model.onnx +0 -0
- onnx/backend/test/data/node/test_elu_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_elu_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/model.onnx +0 -0
- onnx/backend/test/data/node/test_eyelike_with_dtype/model.onnx +0 -0
- onnx/backend/test/data/node/test_eyelike_without_dtype/model.onnx +0 -0
- onnx/backend/test/data/node/test_gelu_default_1/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_gelu_default_1_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_gelu_default_2/test_data_set_0/output_0.pb +4 -3
- onnx/backend/test/data/node/test_gelu_default_2_expanded/test_data_set_0/output_0.pb +4 -3
- onnx/backend/test/data/node/test_gelu_tanh_2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_gelu_tanh_2_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_globalaveragepool/model.onnx +0 -0
- onnx/backend/test/data/node/test_globalaveragepool_precomputed/model.onnx +0 -0
- onnx/backend/test/data/node/test_globalmaxpool/model.onnx +0 -0
- onnx/backend/test/data/node/test_globalmaxpool_precomputed/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_aligncorners_true/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_bicubic/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_bicubic_align_corners_0_additional_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_bicubic_align_corners_1_additional_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_bilinear/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_bilinear_align_corners_0_additional_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_bilinear_align_corners_1_additional_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_border_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_nearest/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_nearest_align_corners_0_additional_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_nearest_align_corners_1_additional_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_reflection_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_volumetric_bilinear_align_corners_0/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_volumetric_bilinear_align_corners_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_volumetric_nearest_align_corners_0/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_volumetric_nearest_align_corners_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_gridsample_zeros_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_gru_batchwise/model.onnx +0 -0
- onnx/backend/test/data/node/test_gru_defaults/model.onnx +0 -0
- onnx/backend/test/data/node/test_gru_seq_length/model.onnx +0 -0
- onnx/backend/test/data/node/test_gru_with_initial_bias/model.onnx +0 -0
- onnx/backend/test/data/node/test_hammingwindow/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hammingwindow_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hammingwindow_symmetric/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_hammingwindow_symmetric_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_hannwindow/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hannwindow_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hannwindow_symmetric/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hannwindow_symmetric_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hardsigmoid/model.onnx +0 -0
- onnx/backend/test/data/node/test_hardsigmoid_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_hardsigmoid_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_hardswish/model.onnx +0 -0
- onnx/backend/test/data/node/test_hardswish_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_image_decoder_decode_jpeg2k_rgb/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_instancenorm_epsilon/model.onnx +0 -0
- onnx/backend/test/data/node/test_instancenorm_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_1d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_1d_default/test_data_set_0/output_0.pb +2 -2
- onnx/backend/test/data/node/test_lppool_2d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_2d_default/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_dilations/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_2d_pads/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_2d_pads/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_same_lower/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_2d_same_lower/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_same_upper/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_2d_same_upper/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_strides/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_2d_strides/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_3d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_lppool_3d_default/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lstm_batchwise/model.onnx +0 -0
- onnx/backend/test/data/node/test_lstm_defaults/model.onnx +0 -0
- onnx/backend/test/data/node/test_lstm_with_initial_bias/model.onnx +0 -0
- onnx/backend/test/data/node/test_lstm_with_peepholes/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_1d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_ceil/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_ceil_output_size_reduce_by_one/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_dilations/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_pads/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_precomputed_strides/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_same_lower/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_same_upper/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_strides/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_uint8/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_3d_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_3d_dilations/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_3d_dilations_use_ref_impl/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_3d_dilations_use_ref_impl_large/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/model.onnx +0 -0
- onnx/backend/test/data/node/test_mish/model.onnx +0 -0
- onnx/backend/test/data/node/test_mish/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_mish_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_mish_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_nllloss_NC/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NC_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_ii/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_weight/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/model.onnx +0 -0
- onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int4/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_max_empty_set/model.onnx +0 -0
- onnx/backend/test/data/node/test_reduce_max_empty_set/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_reduce_max_empty_set/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_reduce_max_empty_set/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop/model.onnx +0 -0
- onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/model.onnx +0 -0
- onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_larger/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_larger/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_smaller/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_smaller/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_smaller/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_smaller/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rnn_seq_length/model.onnx +0 -0
- onnx/backend/test/data/node/test_roialign_aligned_false/model.onnx +0 -0
- onnx/backend/test/data/node/test_roialign_aligned_true/model.onnx +0 -0
- onnx/backend/test/data/node/test_roialign_mode_max/model.onnx +0 -0
- onnx/backend/test/data/node/test_round/model.onnx +0 -0
- onnx/backend/test/data/node/test_selu/model.onnx +0 -0
- onnx/backend/test/data/node/test_selu_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_selu_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_simple_rnn_batchwise/model.onnx +0 -0
- onnx/backend/test/data/node/test_simple_rnn_defaults/model.onnx +0 -0
- onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/model.onnx +0 -0
- onnx/backend/test/data/node/test_sin/model.onnx +0 -0
- onnx/backend/test/data/node/test_sin_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_sinh/model.onnx +0 -0
- onnx/backend/test/data/node/test_sinh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_sinh_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_softplus/model.onnx +0 -0
- onnx/backend/test/data/node/test_softplus_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_softsign/model.onnx +0 -0
- onnx/backend/test/data/node/test_softsign_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_stft_with_window/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_stft_with_window/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_tan/model.onnx +0 -0
- onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_tan_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_thresholdedrelu/model.onnx +0 -0
- onnx/backend/test/data/node/test_thresholdedrelu_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_thresholdedrelu_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_training_dropout/model.onnx +0 -0
- onnx/backend/test/data/node/test_training_dropout_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_training_dropout_default_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_training_dropout_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_training_dropout_zero_ratio/model.onnx +0 -0
- onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/model.onnx +0 -0
- onnx/backend/test/loader/__init__.py +11 -6
- onnx/backend/test/report/__init__.py +4 -3
- onnx/backend/test/report/base.py +1 -0
- onnx/backend/test/report/coverage.py +21 -20
- onnx/backend/test/runner/__init__.py +13 -11
- onnx/backend/test/runner/item.py +3 -2
- onnx/backend/test/stat_coverage.py +6 -5
- onnx/bin/checker.py +1 -0
- onnx/checker.cc +6 -1
- onnx/common/version.h +1 -1
- onnx/compose.py +66 -50
- onnx/cpp2py_export.cc +4 -0
- onnx/defs/__init__.py +2 -2
- onnx/defs/data_type_utils.cc +0 -1
- onnx/defs/gen_doc.py +9 -8
- onnx/defs/gen_shape_inference_information.py +1 -0
- onnx/defs/generator/defs.cc +32 -84
- onnx/defs/generator/old.cc +389 -0
- onnx/defs/math/defs.cc +308 -313
- onnx/defs/math/old.cc +996 -9
- onnx/defs/math/utils.cc +12 -1
- onnx/defs/math/utils.h +2 -0
- onnx/defs/nn/defs.cc +57 -75
- onnx/defs/nn/old.cc +1536 -2
- onnx/defs/object_detection/defs.cc +4 -7
- onnx/defs/object_detection/old.cc +117 -0
- onnx/defs/operator_sets.h +108 -1
- onnx/defs/parser.cc +10 -1
- onnx/defs/quantization/defs.cc +3 -2
- onnx/defs/quantization/old.cc +4 -1
- onnx/defs/rnn/defs.cc +10 -13
- onnx/defs/rnn/old.cc +517 -2
- onnx/defs/schema.cc +53 -59
- onnx/defs/schema.h +58 -2
- onnx/defs/shape_inference.h +67 -18
- onnx/defs/tensor/defs.cc +22 -20
- onnx/defs/tensor/old.cc +114 -3
- onnx/external_data_helper.py +27 -14
- onnx/gen_proto.py +3 -2
- onnx/helper.py +86 -61
- onnx/hub.py +39 -35
- onnx/inliner/inliner.cc +0 -1
- onnx/mapping.py +3 -2
- onnx/numpy_helper.py +159 -23
- onnx/onnx-ml.proto +1 -1
- onnx/onnx.in.proto +1 -1
- onnx/onnx.proto +1 -1
- onnx/onnx_cpp2py_export/defs.pyi +0 -2
- onnx/onnx_cpp2py_export/inliner.pyi +0 -4
- onnx/onnx_cpp2py_export/parser.pyi +0 -4
- onnx/onnx_cpp2py_export.cp38-win_amd64.pyd +0 -0
- onnx/parser.py +1 -0
- onnx/printer.py +2 -3
- onnx/reference/__init__.py +1 -0
- onnx/reference/custom_element_types.py +73 -8
- onnx/reference/op_run.py +13 -58
- onnx/reference/ops/__init__.py +1 -0
- onnx/reference/ops/_helpers.py +6 -4
- onnx/reference/ops/_op.py +16 -5
- onnx/reference/ops/_op_common_indices.py +1 -1
- onnx/reference/ops/_op_common_pool.py +38 -29
- onnx/reference/ops/_op_common_random.py +1 -1
- onnx/reference/ops/_op_common_window.py +2 -2
- onnx/reference/ops/_op_list.py +9 -6
- onnx/reference/ops/aionnx_preview_training/__init__.py +1 -0
- onnx/reference/ops/aionnx_preview_training/_op_list.py +5 -7
- onnx/reference/ops/aionnx_preview_training/_op_run_training.py +1 -1
- onnx/reference/ops/aionnx_preview_training/op_adagrad.py +14 -5
- onnx/reference/ops/aionnx_preview_training/op_adam.py +2 -2
- onnx/reference/ops/aionnx_preview_training/op_momentum.py +14 -2
- onnx/reference/ops/aionnxml/__init__.py +1 -0
- onnx/reference/ops/aionnxml/_common_classifier.py +1 -0
- onnx/reference/ops/aionnxml/_op_list.py +5 -6
- onnx/reference/ops/aionnxml/_op_run_aionnxml.py +1 -1
- onnx/reference/ops/aionnxml/op_array_feature_extractor.py +1 -1
- onnx/reference/ops/aionnxml/op_binarizer.py +1 -1
- onnx/reference/ops/aionnxml/op_dict_vectorizer.py +2 -2
- onnx/reference/ops/aionnxml/op_feature_vectorizer.py +1 -1
- onnx/reference/ops/aionnxml/op_imputer.py +3 -3
- onnx/reference/ops/aionnxml/op_label_encoder.py +1 -1
- onnx/reference/ops/aionnxml/op_linear_classifier.py +2 -2
- onnx/reference/ops/aionnxml/op_linear_regressor.py +1 -1
- onnx/reference/ops/aionnxml/op_normalizer.py +1 -1
- onnx/reference/ops/aionnxml/op_one_hot_encoder.py +1 -1
- onnx/reference/ops/aionnxml/op_scaler.py +1 -1
- onnx/reference/ops/aionnxml/op_svm_classifier.py +10 -7
- onnx/reference/ops/aionnxml/op_svm_helper.py +2 -2
- onnx/reference/ops/aionnxml/op_svm_regressor.py +1 -1
- onnx/reference/ops/aionnxml/op_tree_ensemble.py +3 -3
- onnx/reference/ops/aionnxml/op_tree_ensemble_classifier.py +1 -1
- onnx/reference/ops/aionnxml/op_tree_ensemble_helper.py +2 -2
- onnx/reference/ops/aionnxml/op_tree_ensemble_regressor.py +5 -3
- onnx/reference/ops/experimental/__init__.py +1 -0
- onnx/reference/ops/experimental/_op_list.py +6 -12
- onnx/reference/ops/experimental/_op_run_experimental.py +1 -1
- onnx/reference/ops/experimental/op_im2col.py +1 -1
- onnx/reference/ops/op_abs.py +1 -1
- onnx/reference/ops/op_acos.py +1 -1
- onnx/reference/ops/op_acosh.py +1 -1
- onnx/reference/ops/op_add.py +1 -1
- onnx/reference/ops/op_affine_grid.py +1 -1
- onnx/reference/ops/op_and.py +1 -1
- onnx/reference/ops/op_argmax.py +1 -1
- onnx/reference/ops/op_argmin.py +1 -1
- onnx/reference/ops/op_asin.py +1 -1
- onnx/reference/ops/op_asinh.py +1 -1
- onnx/reference/ops/op_atan.py +1 -1
- onnx/reference/ops/op_atanh.py +1 -1
- onnx/reference/ops/op_attribute_has_value.py +15 -15
- onnx/reference/ops/op_average_pool.py +1 -1
- onnx/reference/ops/op_batch_normalization.py +13 -2
- onnx/reference/ops/op_bernoulli.py +1 -1
- onnx/reference/ops/op_bitshift.py +1 -1
- onnx/reference/ops/op_bitwise_and.py +1 -1
- onnx/reference/ops/op_bitwise_not.py +1 -1
- onnx/reference/ops/op_bitwise_or.py +1 -1
- onnx/reference/ops/op_bitwise_xor.py +1 -1
- onnx/reference/ops/op_blackman_window.py +1 -1
- onnx/reference/ops/op_cast.py +11 -10
- onnx/reference/ops/op_cast_like.py +1 -1
- onnx/reference/ops/op_ceil.py +1 -1
- onnx/reference/ops/op_celu.py +1 -1
- onnx/reference/ops/op_center_crop_pad.py +1 -1
- onnx/reference/ops/op_clip.py +1 -1
- onnx/reference/ops/op_col2im.py +10 -4
- onnx/reference/ops/op_compress.py +1 -1
- onnx/reference/ops/op_concat.py +1 -1
- onnx/reference/ops/op_concat_from_sequence.py +3 -3
- onnx/reference/ops/op_constant.py +2 -2
- onnx/reference/ops/op_constant_of_shape.py +1 -1
- onnx/reference/ops/op_conv.py +22 -17
- onnx/reference/ops/op_conv_integer.py +1 -1
- onnx/reference/ops/op_conv_transpose.py +37 -6
- onnx/reference/ops/op_cos.py +1 -1
- onnx/reference/ops/op_cosh.py +1 -1
- onnx/reference/ops/op_cum_sum.py +1 -1
- onnx/reference/ops/op_deform_conv.py +1 -1
- onnx/reference/ops/op_depth_to_space.py +1 -1
- onnx/reference/ops/op_dequantize_linear.py +7 -9
- onnx/reference/ops/op_det.py +1 -1
- onnx/reference/ops/op_dft.py +16 -2
- onnx/reference/ops/op_div.py +1 -1
- onnx/reference/ops/op_dropout.py +9 -8
- onnx/reference/ops/op_dynamic_quantize_linear.py +1 -1
- onnx/reference/ops/op_einsum.py +1 -1
- onnx/reference/ops/op_elu.py +1 -1
- onnx/reference/ops/op_equal.py +1 -1
- onnx/reference/ops/op_erf.py +1 -1
- onnx/reference/ops/op_exp.py +1 -1
- onnx/reference/ops/op_expand.py +1 -1
- onnx/reference/ops/op_eyelike.py +2 -2
- onnx/reference/ops/op_flatten.py +1 -1
- onnx/reference/ops/op_floor.py +1 -1
- onnx/reference/ops/op_gather.py +1 -1
- onnx/reference/ops/op_gather_elements.py +3 -3
- onnx/reference/ops/op_gathernd.py +2 -4
- onnx/reference/ops/op_gemm.py +12 -2
- onnx/reference/ops/op_global_average_pool.py +1 -1
- onnx/reference/ops/op_global_max_pool.py +1 -1
- onnx/reference/ops/op_greater.py +1 -1
- onnx/reference/ops/op_greater_or_equal.py +1 -1
- onnx/reference/ops/op_grid_sample.py +2 -3
- onnx/reference/ops/op_gru.py +7 -7
- onnx/reference/ops/op_hamming_window.py +1 -1
- onnx/reference/ops/op_hann_window.py +1 -1
- onnx/reference/ops/op_hard_sigmoid.py +1 -1
- onnx/reference/ops/op_hardmax.py +5 -2
- onnx/reference/ops/op_identity.py +3 -3
- onnx/reference/ops/op_if.py +2 -2
- onnx/reference/ops/op_instance_normalization.py +1 -1
- onnx/reference/ops/op_isinf.py +1 -1
- onnx/reference/ops/op_isnan.py +1 -1
- onnx/reference/ops/op_layer_normalization.py +2 -4
- onnx/reference/ops/op_leaky_relu.py +1 -1
- onnx/reference/ops/op_less.py +1 -1
- onnx/reference/ops/op_less_or_equal.py +1 -1
- onnx/reference/ops/op_log.py +1 -1
- onnx/reference/ops/op_log_softmax.py +1 -1
- onnx/reference/ops/op_loop.py +4 -2
- onnx/reference/ops/op_lp_normalization.py +1 -1
- onnx/reference/ops/op_lp_pool.py +4 -2
- onnx/reference/ops/op_lrn.py +1 -1
- onnx/reference/ops/op_lstm.py +9 -11
- onnx/reference/ops/op_matmul.py +1 -1
- onnx/reference/ops/op_matmul_integer.py +1 -1
- onnx/reference/ops/op_max.py +1 -1
- onnx/reference/ops/op_max_pool.py +8 -8
- onnx/reference/ops/op_max_unpool.py +5 -3
- onnx/reference/ops/op_mean.py +1 -1
- onnx/reference/ops/op_mel_weight_matrix.py +1 -1
- onnx/reference/ops/op_min.py +1 -1
- onnx/reference/ops/op_mod.py +1 -1
- onnx/reference/ops/op_mul.py +1 -1
- onnx/reference/ops/op_neg.py +1 -1
- onnx/reference/ops/op_negative_log_likelihood_loss.py +4 -2
- onnx/reference/ops/op_non_max_suppression.py +10 -11
- onnx/reference/ops/op_non_zero.py +1 -1
- onnx/reference/ops/op_not.py +1 -1
- onnx/reference/ops/op_one_hot.py +1 -1
- onnx/reference/ops/op_optional.py +1 -1
- onnx/reference/ops/op_optional_get_element.py +1 -1
- onnx/reference/ops/op_optional_has_element.py +1 -1
- onnx/reference/ops/op_or.py +1 -1
- onnx/reference/ops/op_pad.py +1 -1
- onnx/reference/ops/op_pool_common.py +7 -6
- onnx/reference/ops/op_pow.py +1 -1
- onnx/reference/ops/op_prelu.py +3 -3
- onnx/reference/ops/op_qlinear_conv.py +1 -1
- onnx/reference/ops/op_qlinear_matmul.py +1 -1
- onnx/reference/ops/op_quantize_linear.py +15 -9
- onnx/reference/ops/op_random_normal.py +1 -1
- onnx/reference/ops/op_random_normal_like.py +1 -1
- onnx/reference/ops/op_random_uniform.py +1 -1
- onnx/reference/ops/op_random_uniform_like.py +1 -1
- onnx/reference/ops/op_range.py +1 -1
- onnx/reference/ops/op_reciprocal.py +1 -1
- onnx/reference/ops/op_reduce_l1.py +1 -1
- onnx/reference/ops/op_reduce_l2.py +1 -1
- onnx/reference/ops/op_reduce_log_sum.py +1 -1
- onnx/reference/ops/op_reduce_log_sum_exp.py +1 -1
- onnx/reference/ops/op_reduce_max.py +1 -1
- onnx/reference/ops/op_reduce_mean.py +2 -2
- onnx/reference/ops/op_reduce_min.py +1 -1
- onnx/reference/ops/op_reduce_prod.py +1 -1
- onnx/reference/ops/op_reduce_sum.py +2 -2
- onnx/reference/ops/op_reduce_sum_square.py +1 -1
- onnx/reference/ops/op_regex_full_match.py +1 -1
- onnx/reference/ops/op_relu.py +1 -1
- onnx/reference/ops/op_reshape.py +1 -1
- onnx/reference/ops/op_reverse_sequence.py +1 -1
- onnx/reference/ops/op_rnn.py +10 -8
- onnx/reference/ops/op_roi_align.py +5 -5
- onnx/reference/ops/op_round.py +1 -1
- onnx/reference/ops/op_scan.py +8 -8
- onnx/reference/ops/op_scatter_elements.py +19 -50
- onnx/reference/ops/op_scatternd.py +1 -1
- onnx/reference/ops/op_selu.py +1 -1
- onnx/reference/ops/op_sequence_at.py +1 -1
- onnx/reference/ops/op_sequence_construct.py +1 -1
- onnx/reference/ops/op_sequence_empty.py +2 -2
- onnx/reference/ops/op_sequence_erase.py +1 -1
- onnx/reference/ops/op_sequence_insert.py +6 -6
- onnx/reference/ops/op_sequence_length.py +1 -1
- onnx/reference/ops/op_sequence_map.py +1 -1
- onnx/reference/ops/op_shape.py +2 -6
- onnx/reference/ops/op_shrink.py +1 -1
- onnx/reference/ops/op_sigmoid.py +1 -1
- onnx/reference/ops/op_sign.py +1 -1
- onnx/reference/ops/op_sin.py +1 -1
- onnx/reference/ops/op_sinh.py +1 -1
- onnx/reference/ops/op_size.py +1 -1
- onnx/reference/ops/op_slice.py +3 -5
- onnx/reference/ops/op_softmax.py +1 -1
- onnx/reference/ops/op_softmax_cross_entropy_loss.py +1 -1
- onnx/reference/ops/op_softplus.py +1 -1
- onnx/reference/ops/op_softsign.py +1 -1
- onnx/reference/ops/op_space_to_depth.py +1 -1
- onnx/reference/ops/op_split.py +1 -1
- onnx/reference/ops/op_split_to_sequence.py +5 -7
- onnx/reference/ops/op_sqrt.py +1 -1
- onnx/reference/ops/op_squeeze.py +1 -1
- onnx/reference/ops/op_stft.py +3 -2
- onnx/reference/ops/op_string_concat.py +1 -1
- onnx/reference/ops/op_string_normalizer.py +8 -8
- onnx/reference/ops/op_string_split.py +2 -4
- onnx/reference/ops/op_sub.py +1 -1
- onnx/reference/ops/op_sum.py +1 -1
- onnx/reference/ops/op_tan.py +1 -1
- onnx/reference/ops/op_tanh.py +1 -1
- onnx/reference/ops/op_tfidf_vectorizer.py +11 -12
- onnx/reference/ops/op_thresholded_relu.py +1 -1
- onnx/reference/ops/op_tile.py +1 -1
- onnx/reference/ops/op_topk.py +7 -2
- onnx/reference/ops/op_transpose.py +1 -1
- onnx/reference/ops/op_trilu.py +1 -1
- onnx/reference/ops/op_unique.py +3 -1
- onnx/reference/ops/op_unsqueeze.py +2 -2
- onnx/reference/ops/op_upsample.py +1 -1
- onnx/reference/ops/op_where.py +1 -1
- onnx/reference/ops/op_xor.py +1 -1
- onnx/reference/ops_optimized/__init__.py +1 -0
- onnx/reference/ops_optimized/op_conv_optimized.py +1 -1
- onnx/reference/reference_evaluator.py +27 -13
- onnx/serialization.py +1 -1
- onnx/shape_inference/implementation.cc +15 -1
- onnx/shape_inference/implementation.h +15 -1
- onnx/shape_inference.py +1 -1
- onnx/subbyte.py +6 -6
- onnx/test/basic_test.py +1 -0
- onnx/test/checker_test.py +37 -2
- onnx/test/compose_test.py +12 -11
- onnx/test/cpp/schema_registration_test.cc +3 -3
- onnx/test/cpp/shape_inference_test.cc +38 -2
- onnx/test/elu_test.py +2 -0
- onnx/test/function_inference_test.py +2 -0
- onnx/test/function_test.py +1 -0
- onnx/test/helper_test.py +77 -16
- onnx/test/hub_test.py +1 -1
- onnx/test/inference_function_test.py +25 -8
- onnx/test/inliner_test.py +2 -0
- onnx/test/model_container_refeval_test.py +2 -1
- onnx/test/model_container_test.py +1 -0
- onnx/test/model_inference_test.py +2 -0
- onnx/test/numpy_helper_test.py +56 -1
- onnx/test/parser_test.py +48 -2
- onnx/test/printer_test.py +2 -0
- onnx/test/reference_evaluator_ml_test.py +2 -3
- onnx/test/reference_evaluator_model_test.py +2 -0
- onnx/test/reference_evaluator_test.py +173 -19
- onnx/test/relu_test.py +2 -0
- onnx/test/schema_test.py +4 -2
- onnx/test/serialization_test.py +2 -0
- onnx/test/shape_inference_test.py +349 -19
- onnx/test/symbolic_shape_test.py +3 -3
- onnx/test/test_backend_onnxruntime.py +272 -1
- onnx/test/test_backend_reference.py +24 -3
- onnx/test/test_backend_test.py +6 -5
- onnx/test/test_external_data.py +91 -2
- onnx/test/test_with_ort.py +1 -0
- onnx/test/tools_test.py +15 -14
- onnx/test/training_tool_test.py +1 -0
- onnx/test/utils_test.py +1 -0
- onnx/test/version_converter/automatic_downgrade_test.py +2 -0
- onnx/test/version_converter/automatic_upgrade_test.py +2 -0
- onnx/test/version_converter_test.py +26 -7
- onnx/test/version_utils.py +8 -0
- onnx/tools/net_drawer.py +7 -6
- onnx/tools/replace_constants.py +11 -11
- onnx/tools/update_model_dims.py +7 -6
- onnx/utils.py +104 -21
- onnx/version.py +2 -2
- onnx/version_converter/adapters/split_17_18.h +1 -1
- onnx/version_converter/convert.h +107 -2
- onnx/version_converter.py +3 -2
- {onnx-1.16.1.dist-info → onnx-1.17.0.dist-info}/METADATA +8 -11
- {onnx-1.16.1.dist-info → onnx-1.17.0.dist-info}/RECORD +843 -817
- {onnx-1.16.1.dist-info → onnx-1.17.0.dist-info}/WHEEL +1 -1
- {onnx-1.16.1.dist-info → onnx-1.17.0.dist-info}/LICENSE +0 -0
- {onnx-1.16.1.dist-info → onnx-1.17.0.dist-info}/entry_points.txt +0 -0
- {onnx-1.16.1.dist-info → onnx-1.17.0.dist-info}/top_level.txt +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# Copyright (c) ONNX Project Contributors
|
|
2
2
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import csv
|
|
6
7
|
import datetime
|
|
7
8
|
import os
|
|
8
9
|
from collections import OrderedDict, defaultdict
|
|
9
|
-
from typing import IO, Any
|
|
10
|
+
from typing import IO, Any
|
|
10
11
|
|
|
11
12
|
from tabulate import tabulate
|
|
12
13
|
|
|
@@ -18,8 +19,8 @@ _all_schemas = defs.get_all_schemas()
|
|
|
18
19
|
|
|
19
20
|
class AttrCoverage:
|
|
20
21
|
def __init__(self) -> None:
|
|
21
|
-
self.name:
|
|
22
|
-
self.values:
|
|
22
|
+
self.name: str | None = None
|
|
23
|
+
self.values: set[str] = set()
|
|
23
24
|
|
|
24
25
|
def add(self, attr: onnx.AttributeProto) -> None:
|
|
25
26
|
assert self.name in {None, attr.name}
|
|
@@ -35,8 +36,8 @@ class AttrCoverage:
|
|
|
35
36
|
|
|
36
37
|
class NodeCoverage:
|
|
37
38
|
def __init__(self) -> None:
|
|
38
|
-
self.op_type:
|
|
39
|
-
self.attr_coverages:
|
|
39
|
+
self.op_type: str | None = None
|
|
40
|
+
self.attr_coverages: dict[str, AttrCoverage] = defaultdict(AttrCoverage)
|
|
40
41
|
|
|
41
42
|
def add(self, node: onnx.NodeProto) -> None:
|
|
42
43
|
assert self.op_type in [None, node.op_type]
|
|
@@ -52,9 +53,9 @@ class NodeCoverage:
|
|
|
52
53
|
|
|
53
54
|
class ModelCoverage:
|
|
54
55
|
def __init__(self) -> None:
|
|
55
|
-
self.name:
|
|
56
|
-
self.graph:
|
|
57
|
-
self.node_coverages:
|
|
56
|
+
self.name: str | None = None
|
|
57
|
+
self.graph: GraphProto | None = None
|
|
58
|
+
self.node_coverages: dict[str, NodeCoverage] = defaultdict(NodeCoverage)
|
|
58
59
|
|
|
59
60
|
def add(self, model: onnx.ModelProto) -> None:
|
|
60
61
|
assert self.name in [None, model.graph.name]
|
|
@@ -70,11 +71,11 @@ class ModelCoverage:
|
|
|
70
71
|
|
|
71
72
|
class Coverage:
|
|
72
73
|
def __init__(self) -> None:
|
|
73
|
-
self.buckets:
|
|
74
|
+
self.buckets: dict[str, dict[str, NodeCoverage]] = {
|
|
74
75
|
"loaded": defaultdict(NodeCoverage),
|
|
75
76
|
"passed": defaultdict(NodeCoverage),
|
|
76
77
|
}
|
|
77
|
-
self.models:
|
|
78
|
+
self.models: dict[str, dict[str, ModelCoverage]] = {
|
|
78
79
|
"loaded": defaultdict(ModelCoverage),
|
|
79
80
|
"passed": defaultdict(ModelCoverage),
|
|
80
81
|
}
|
|
@@ -105,8 +106,8 @@ class Coverage:
|
|
|
105
106
|
|
|
106
107
|
rows = []
|
|
107
108
|
passed = []
|
|
108
|
-
all_ops:
|
|
109
|
-
experimental:
|
|
109
|
+
all_ops: list[str] = []
|
|
110
|
+
experimental: list[str] = []
|
|
110
111
|
for op_cov in self.buckets["passed"].values():
|
|
111
112
|
covered_attrs = [
|
|
112
113
|
f"{attr_cov.name}: {len(attr_cov.values)}"
|
|
@@ -144,7 +145,7 @@ class Coverage:
|
|
|
144
145
|
# backend with indications of whether the tests passed or failed for
|
|
145
146
|
# each row.
|
|
146
147
|
def report_csv(
|
|
147
|
-
self, all_ops:
|
|
148
|
+
self, all_ops: list[str], passed: list[str | None], experimental: list[str]
|
|
148
149
|
) -> None:
|
|
149
150
|
for schema in _all_schemas:
|
|
150
151
|
if schema.domain in {"", "ai.onnx"}:
|
|
@@ -158,9 +159,9 @@ class Coverage:
|
|
|
158
159
|
models_path = os.path.join(
|
|
159
160
|
str(os.environ.get("CSVDIR")), "models.csv" # type: ignore
|
|
160
161
|
) # type: ignore
|
|
161
|
-
existing_nodes: OrderedDict[str,
|
|
162
|
-
existing_models: OrderedDict[str,
|
|
163
|
-
frameworks:
|
|
162
|
+
existing_nodes: OrderedDict[str, dict[str, str]] = OrderedDict()
|
|
163
|
+
existing_models: OrderedDict[str, dict[str, str]] = OrderedDict()
|
|
164
|
+
frameworks: list[str] = []
|
|
164
165
|
if os.path.isfile(nodes_path):
|
|
165
166
|
with open(nodes_path) as nodes_file:
|
|
166
167
|
reader = csv.DictReader(nodes_file)
|
|
@@ -201,7 +202,7 @@ class Coverage:
|
|
|
201
202
|
existing_nodes[node_name][str(backend)] = "Passed!"
|
|
202
203
|
else:
|
|
203
204
|
existing_nodes[node_name][str(backend)] = "Failed!"
|
|
204
|
-
summaries:
|
|
205
|
+
summaries: dict[Any, Any] = {}
|
|
205
206
|
if "Summary" in existing_nodes:
|
|
206
207
|
summaries = existing_nodes["Summary"]
|
|
207
208
|
del existing_nodes["Summary"]
|
|
@@ -246,9 +247,9 @@ class Coverage:
|
|
|
246
247
|
del existing_models["Summary"]
|
|
247
248
|
if str(backend) in summaries:
|
|
248
249
|
del summaries[str(backend)]
|
|
249
|
-
summaries[
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
summaries[str(backend)] = (
|
|
251
|
+
f"{len(self.models['passed'])}/{num_models} model tests passed"
|
|
252
|
+
)
|
|
252
253
|
summaries["Model"] = "Summary"
|
|
253
254
|
for model in existing_models: # type: ignore
|
|
254
255
|
existing_models[model]["Model"] = model
|
|
@@ -10,7 +10,6 @@ import os
|
|
|
10
10
|
import re
|
|
11
11
|
import shutil
|
|
12
12
|
import sys
|
|
13
|
-
import tarfile
|
|
14
13
|
import tempfile
|
|
15
14
|
import time
|
|
16
15
|
import unittest
|
|
@@ -42,7 +41,7 @@ def retry_execute(times: int) -> Callable[[Callable[..., Any]], Callable[..., An
|
|
|
42
41
|
for i in range(1, times + 1):
|
|
43
42
|
try:
|
|
44
43
|
return func(*args, **kwargs)
|
|
45
|
-
except Exception:
|
|
44
|
+
except Exception: # noqa: PERF203
|
|
46
45
|
print(f"{i} times tried")
|
|
47
46
|
if i == times:
|
|
48
47
|
raise
|
|
@@ -197,7 +196,7 @@ class Runner:
|
|
|
197
196
|
for i in range(len(outputs)):
|
|
198
197
|
if isinstance(outputs[i], (list, tuple)):
|
|
199
198
|
if not isinstance(ref_outputs[i], (list, tuple)):
|
|
200
|
-
raise AssertionError(
|
|
199
|
+
raise AssertionError( # noqa: TRY004
|
|
201
200
|
f"Unexpected type {type(outputs[i])} for outputs[{i}]. Expected "
|
|
202
201
|
f"type is {type(ref_outputs[i])} (known test={model_dir or '?'!r})."
|
|
203
202
|
)
|
|
@@ -225,10 +224,14 @@ class Runner:
|
|
|
225
224
|
@classmethod
|
|
226
225
|
@retry_execute(3)
|
|
227
226
|
def download_model(
|
|
228
|
-
cls,
|
|
227
|
+
cls,
|
|
228
|
+
model_test: TestCase,
|
|
229
|
+
model_dir: str,
|
|
230
|
+
models_dir: str,
|
|
229
231
|
) -> None:
|
|
230
232
|
# On Windows, NamedTemporaryFile can not be opened for a
|
|
231
233
|
# second time
|
|
234
|
+
del model_dir
|
|
232
235
|
download_file = tempfile.NamedTemporaryFile(delete=False)
|
|
233
236
|
try:
|
|
234
237
|
download_file.close()
|
|
@@ -238,8 +241,7 @@ class Runner:
|
|
|
238
241
|
)
|
|
239
242
|
urlretrieve(model_test.url, download_file.name)
|
|
240
243
|
print("Done")
|
|
241
|
-
|
|
242
|
-
t.extractall(models_dir)
|
|
244
|
+
onnx.utils._extract_model_safe(download_file.name, models_dir)
|
|
243
245
|
except Exception as e:
|
|
244
246
|
print(f"Failed to prepare data for model {model_test.model_name}: {e}")
|
|
245
247
|
raise
|
|
@@ -341,7 +343,7 @@ class Runner:
|
|
|
341
343
|
# never loaded if the test skipped
|
|
342
344
|
model_marker: list[ModelProto | NodeProto | None] = [None]
|
|
343
345
|
|
|
344
|
-
def run(test_self: Any, device: str, **kwargs) -> None:
|
|
346
|
+
def run(test_self: Any, device: str, **kwargs) -> None: # noqa: ARG001
|
|
345
347
|
if model_test.url is not None and model_test.url.startswith(
|
|
346
348
|
"onnx/backend/test/data/light/"
|
|
347
349
|
):
|
|
@@ -459,8 +461,8 @@ class Runner:
|
|
|
459
461
|
self.assert_similar_outputs(
|
|
460
462
|
ref_outputs,
|
|
461
463
|
outputs,
|
|
462
|
-
rtol=model_test.rtol,
|
|
463
|
-
atol=model_test.atol,
|
|
464
|
+
rtol=kwargs.get("rtol", model_test.rtol),
|
|
465
|
+
atol=kwargs.get("atol", model_test.atol),
|
|
464
466
|
model_dir=model_dir,
|
|
465
467
|
)
|
|
466
468
|
|
|
@@ -483,8 +485,8 @@ class Runner:
|
|
|
483
485
|
self.assert_similar_outputs(
|
|
484
486
|
ref_outputs,
|
|
485
487
|
outputs,
|
|
486
|
-
rtol=model_test.rtol,
|
|
487
|
-
atol=model_test.atol,
|
|
488
|
+
rtol=kwargs.get("rtol", model_test.rtol),
|
|
489
|
+
atol=kwargs.get("atol", model_test.atol),
|
|
488
490
|
model_dir=model_dir,
|
|
489
491
|
)
|
|
490
492
|
|
onnx/backend/test/runner/item.py
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# Copyright (c) ONNX Project Contributors
|
|
2
2
|
#
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import dataclasses
|
|
6
|
-
from typing import Any, Callable
|
|
7
|
+
from typing import Any, Callable
|
|
7
8
|
|
|
8
9
|
from onnx import ModelProto, NodeProto
|
|
9
10
|
|
|
@@ -14,4 +15,4 @@ from onnx import ModelProto, NodeProto
|
|
|
14
15
|
@dataclasses.dataclass
|
|
15
16
|
class TestItem:
|
|
16
17
|
func: Callable[..., Any]
|
|
17
|
-
proto:
|
|
18
|
+
proto: list[ModelProto | NodeProto | None]
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
# Copyright (c) ONNX Project Contributors
|
|
4
4
|
#
|
|
5
5
|
# SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
from __future__ import annotations
|
|
6
7
|
|
|
7
8
|
import os
|
|
8
|
-
from typing import IO, Any,
|
|
9
|
+
from typing import IO, Any, Sequence
|
|
9
10
|
|
|
10
11
|
from onnx import AttributeProto, defs, load
|
|
11
12
|
from onnx.backend.test.case import collect_snippets
|
|
@@ -98,7 +99,7 @@ def gen_node_test_coverage(
|
|
|
98
99
|
f.write("Node tests have covered 0/0 (N/A) common operators. \n\n")
|
|
99
100
|
if num_experimental:
|
|
100
101
|
f.write(
|
|
101
|
-
"Node tests have covered {}/{} ({:.2f}%, {} generators excluded) "
|
|
102
|
+
"Node tests have covered {}/{} ({:.2f}%, {} generators excluded) " # noqa: UP032
|
|
102
103
|
"experimental operators.\n\n".format(
|
|
103
104
|
len(experimental_covered),
|
|
104
105
|
num_experimental,
|
|
@@ -155,8 +156,8 @@ def gen_model_test_coverage(
|
|
|
155
156
|
schema_dict[schema.name] = schema
|
|
156
157
|
# Load models from each model test using Runner.prepare_model_data
|
|
157
158
|
# Need to grab associated nodes
|
|
158
|
-
attrs:
|
|
159
|
-
model_paths:
|
|
159
|
+
attrs: dict[str, dict[str, list[Any]]] = {}
|
|
160
|
+
model_paths: list[Any] = []
|
|
160
161
|
for rt in load_model_tests(kind="real"):
|
|
161
162
|
if rt.url.startswith("onnx/backend/test/data/light/"):
|
|
162
163
|
# testing local files
|
|
@@ -251,7 +252,7 @@ def gen_model_test_coverage(
|
|
|
251
252
|
|
|
252
253
|
|
|
253
254
|
def gen_overall_test_coverage(
|
|
254
|
-
schemas: Sequence[defs.OpSchema], f: IO[Any], ml: bool
|
|
255
|
+
schemas: Sequence[defs.OpSchema], f: IO[Any], ml: bool # noqa: ARG001
|
|
255
256
|
) -> None:
|
|
256
257
|
f.write("# Overall Test Coverage\n")
|
|
257
258
|
f.write("## To be filled.\n")
|
onnx/bin/checker.py
CHANGED
onnx/checker.cc
CHANGED
|
@@ -709,6 +709,12 @@ void check_graph(const GraphProto& graph, const CheckerContext& ctx, const Lexic
|
|
|
709
709
|
lex_ctx.add(output);
|
|
710
710
|
}
|
|
711
711
|
}
|
|
712
|
+
for (const auto& value_info : graph.output()) {
|
|
713
|
+
if (!lex_ctx.this_graph_has(value_info.name())) {
|
|
714
|
+
fail_check("Graph output '", value_info.name(), "' is not an output of any node in graph.");
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
|
|
712
718
|
print_warning_if_has_experimental(used_experimental_ops);
|
|
713
719
|
}
|
|
714
720
|
|
|
@@ -904,7 +910,6 @@ void check_model(const ModelProto& model, CheckerContext& ctx) {
|
|
|
904
910
|
}
|
|
905
911
|
}
|
|
906
912
|
}
|
|
907
|
-
std::unordered_map<std::string, int> versions;
|
|
908
913
|
ctx.set_ir_version(static_cast<int>(model.ir_version()));
|
|
909
914
|
std::unordered_map<std::string, int> opset_imports;
|
|
910
915
|
for (const auto& opset_import : model.opset_import()) {
|
onnx/common/version.h
CHANGED
onnx/compose.py
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
# Copyright (c) ONNX Project Contributors
|
|
2
2
|
#
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
6
|
+
from typing import MutableMapping
|
|
5
7
|
|
|
6
|
-
from
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
from onnx import (
|
|
9
|
+
AttributeProto,
|
|
10
|
+
GraphProto,
|
|
11
|
+
ModelProto,
|
|
12
|
+
TensorProto,
|
|
13
|
+
checker,
|
|
14
|
+
helper,
|
|
15
|
+
utils,
|
|
16
|
+
)
|
|
9
17
|
|
|
10
18
|
|
|
11
19
|
def check_overlapping_names(
|
|
12
|
-
g1: GraphProto, g2: GraphProto, io_map:
|
|
13
|
-
) ->
|
|
20
|
+
g1: GraphProto, g2: GraphProto, io_map: list[tuple[str, str]] | None = None
|
|
21
|
+
) -> list[tuple[str, list[str]]]:
|
|
14
22
|
"""Checks whether there are name collisions between two graphs
|
|
15
23
|
|
|
16
24
|
Returns a list of tuples where the first element represents the member containing overlapping names
|
|
@@ -25,20 +33,20 @@ def check_overlapping_names(
|
|
|
25
33
|
if type(g2) is not GraphProto:
|
|
26
34
|
raise ValueError("g2 argument is not an ONNX graph")
|
|
27
35
|
|
|
28
|
-
def _overlapping(c1:
|
|
36
|
+
def _overlapping(c1: list[str], c2: list[str]) -> list[str]:
|
|
29
37
|
return list(set(c1) & set(c2))
|
|
30
38
|
|
|
31
|
-
def _edge_names(graph: GraphProto, exclude:
|
|
39
|
+
def _edge_names(graph: GraphProto, exclude: set[str] | None = None) -> list[str]:
|
|
32
40
|
if exclude is None:
|
|
33
41
|
exclude = set()
|
|
34
42
|
edges = []
|
|
35
43
|
for n in graph.node:
|
|
36
44
|
for i in n.input:
|
|
37
45
|
if i != "" and i not in exclude:
|
|
38
|
-
edges.append(i)
|
|
46
|
+
edges.append(i) # noqa: PERF401
|
|
39
47
|
for o in n.output:
|
|
40
48
|
if o != "" and o not in exclude:
|
|
41
|
-
edges.append(o)
|
|
49
|
+
edges.append(o) # noqa: PERF401
|
|
42
50
|
return edges
|
|
43
51
|
|
|
44
52
|
result = []
|
|
@@ -80,13 +88,13 @@ def check_overlapping_names(
|
|
|
80
88
|
def merge_graphs(
|
|
81
89
|
g1: GraphProto,
|
|
82
90
|
g2: GraphProto,
|
|
83
|
-
io_map:
|
|
84
|
-
inputs:
|
|
85
|
-
outputs:
|
|
86
|
-
prefix1:
|
|
87
|
-
prefix2:
|
|
88
|
-
name:
|
|
89
|
-
doc_string:
|
|
91
|
+
io_map: list[tuple[str, str]],
|
|
92
|
+
inputs: list[str] | None = None,
|
|
93
|
+
outputs: list[str] | None = None,
|
|
94
|
+
prefix1: str | None = None,
|
|
95
|
+
prefix2: str | None = None,
|
|
96
|
+
name: str | None = None,
|
|
97
|
+
doc_string: str | None = None,
|
|
90
98
|
) -> GraphProto:
|
|
91
99
|
"""Combines two ONNX graphs into a single one.
|
|
92
100
|
|
|
@@ -206,12 +214,20 @@ def merge_graphs(
|
|
|
206
214
|
g.node.extend(g2.node)
|
|
207
215
|
g2_nodes_end = len(g.node)
|
|
208
216
|
|
|
217
|
+
# Search inputs of the subgraph recursively
|
|
218
|
+
def connect_io(sub_graph: GraphProto, start: int, end: int) -> None:
|
|
219
|
+
for node_idx in range(start, end):
|
|
220
|
+
node = sub_graph.node[node_idx]
|
|
221
|
+
for attr in node.attribute:
|
|
222
|
+
if attr.type == AttributeProto.GRAPH:
|
|
223
|
+
connect_io(attr.g, 0, len(attr.g.node))
|
|
224
|
+
|
|
225
|
+
for index, name_ in enumerate(node.input):
|
|
226
|
+
if name_ in reversed_io_map:
|
|
227
|
+
node.input[index] = reversed_io_map[name_]
|
|
228
|
+
|
|
209
229
|
# Connecting outputs of the first graph with the inputs of the second
|
|
210
|
-
|
|
211
|
-
node = g.node[node_idx]
|
|
212
|
-
for index, name_ in enumerate(node.input):
|
|
213
|
-
if name_ in reversed_io_map:
|
|
214
|
-
node.input[index] = reversed_io_map[name_]
|
|
230
|
+
connect_io(g, g2_nodes_begin, g2_nodes_end)
|
|
215
231
|
|
|
216
232
|
if inputs:
|
|
217
233
|
input_set = set(inputs)
|
|
@@ -267,17 +283,17 @@ def merge_graphs(
|
|
|
267
283
|
def merge_models(
|
|
268
284
|
m1: ModelProto,
|
|
269
285
|
m2: ModelProto,
|
|
270
|
-
io_map:
|
|
271
|
-
inputs:
|
|
272
|
-
outputs:
|
|
273
|
-
prefix1:
|
|
274
|
-
prefix2:
|
|
275
|
-
name:
|
|
276
|
-
doc_string:
|
|
277
|
-
producer_name:
|
|
278
|
-
producer_version:
|
|
279
|
-
domain:
|
|
280
|
-
model_version:
|
|
286
|
+
io_map: list[tuple[str, str]],
|
|
287
|
+
inputs: list[str] | None = None,
|
|
288
|
+
outputs: list[str] | None = None,
|
|
289
|
+
prefix1: str | None = None,
|
|
290
|
+
prefix2: str | None = None,
|
|
291
|
+
name: str | None = None,
|
|
292
|
+
doc_string: str | None = None,
|
|
293
|
+
producer_name: str | None = "onnx.compose.merge_models",
|
|
294
|
+
producer_version: str | None = "1.0",
|
|
295
|
+
domain: str | None = "",
|
|
296
|
+
model_version: int | None = 1,
|
|
281
297
|
) -> ModelProto:
|
|
282
298
|
"""Combines two ONNX models into a single one.
|
|
283
299
|
|
|
@@ -413,14 +429,14 @@ def merge_models(
|
|
|
413
429
|
def add_prefix_graph(
|
|
414
430
|
graph: GraphProto,
|
|
415
431
|
prefix: str,
|
|
416
|
-
rename_nodes:
|
|
417
|
-
rename_edges:
|
|
418
|
-
rename_inputs:
|
|
419
|
-
rename_outputs:
|
|
420
|
-
rename_initializers:
|
|
421
|
-
rename_value_infos:
|
|
422
|
-
inplace:
|
|
423
|
-
name_map:
|
|
432
|
+
rename_nodes: bool | None = True,
|
|
433
|
+
rename_edges: bool | None = True,
|
|
434
|
+
rename_inputs: bool | None = True,
|
|
435
|
+
rename_outputs: bool | None = True,
|
|
436
|
+
rename_initializers: bool | None = True,
|
|
437
|
+
rename_value_infos: bool | None = True,
|
|
438
|
+
inplace: bool | None = False,
|
|
439
|
+
name_map: dict[str, str] | None = None,
|
|
424
440
|
) -> GraphProto:
|
|
425
441
|
"""Adds a prefix to names of elements in a graph: nodes, edges, inputs, outputs,
|
|
426
442
|
initializers, sparse initializer, value infos.
|
|
@@ -530,14 +546,14 @@ def add_prefix_graph(
|
|
|
530
546
|
def add_prefix(
|
|
531
547
|
model: ModelProto,
|
|
532
548
|
prefix: str,
|
|
533
|
-
rename_nodes:
|
|
534
|
-
rename_edges:
|
|
535
|
-
rename_inputs:
|
|
536
|
-
rename_outputs:
|
|
537
|
-
rename_initializers:
|
|
538
|
-
rename_value_infos:
|
|
539
|
-
rename_functions:
|
|
540
|
-
inplace:
|
|
549
|
+
rename_nodes: bool | None = True,
|
|
550
|
+
rename_edges: bool | None = True,
|
|
551
|
+
rename_inputs: bool | None = True,
|
|
552
|
+
rename_outputs: bool | None = True,
|
|
553
|
+
rename_initializers: bool | None = True,
|
|
554
|
+
rename_value_infos: bool | None = True,
|
|
555
|
+
rename_functions: bool | None = True,
|
|
556
|
+
inplace: bool | None = False,
|
|
541
557
|
) -> ModelProto:
|
|
542
558
|
"""Adds a prefix to names of elements in a graph: nodes, edges, inputs, outputs,
|
|
543
559
|
initializers, sparse initializer, value infos, and local functions.
|
|
@@ -604,7 +620,7 @@ def add_prefix(
|
|
|
604
620
|
def expand_out_dim_graph(
|
|
605
621
|
graph: GraphProto,
|
|
606
622
|
dim_idx: int,
|
|
607
|
-
inplace:
|
|
623
|
+
inplace: bool | None = False,
|
|
608
624
|
) -> GraphProto:
|
|
609
625
|
"""Inserts an extra dimension with extent 1 to each output in the graph.
|
|
610
626
|
|
|
@@ -684,7 +700,7 @@ def expand_out_dim_graph(
|
|
|
684
700
|
def expand_out_dim(
|
|
685
701
|
model: ModelProto,
|
|
686
702
|
dim_idx: int,
|
|
687
|
-
inplace:
|
|
703
|
+
inplace: bool | None = False,
|
|
688
704
|
) -> ModelProto:
|
|
689
705
|
"""Inserts an extra dimension with extent 1 to each output in the graph.
|
|
690
706
|
|
onnx/cpp2py_export.cc
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
#include "onnx/shape_inference/implementation.h"
|
|
21
21
|
#include "onnx/version_converter/convert.h"
|
|
22
22
|
|
|
23
|
+
#if (PYBIND11_VERSION_MAJOR != 2 || PYBIND11_VERSION_MINOR < 12)
|
|
24
|
+
#pragma error "Pybind11 must be >= 2.12 to be compatible with numpy 2.0."
|
|
25
|
+
#endif
|
|
26
|
+
|
|
23
27
|
namespace ONNX_NAMESPACE {
|
|
24
28
|
namespace py = pybind11;
|
|
25
29
|
using namespace pybind11::literals;
|
onnx/defs/__init__.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Copyright (c) ONNX Project Contributors
|
|
2
2
|
#
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
__all__ = [
|
|
6
7
|
"C",
|
|
@@ -19,7 +20,6 @@ __all__ = [
|
|
|
19
20
|
"SchemaError",
|
|
20
21
|
]
|
|
21
22
|
|
|
22
|
-
from typing import List
|
|
23
23
|
|
|
24
24
|
import onnx.onnx_cpp2py_export.defs as C # noqa: N812
|
|
25
25
|
from onnx import AttributeProto, FunctionProto
|
|
@@ -116,7 +116,7 @@ def _op_schema_attribute_repr(self) -> str:
|
|
|
116
116
|
OpSchema.Attribute.__repr__ = _op_schema_attribute_repr # type: ignore
|
|
117
117
|
|
|
118
118
|
|
|
119
|
-
def get_function_ops() ->
|
|
119
|
+
def get_function_ops() -> list[OpSchema]:
|
|
120
120
|
"""Return operators defined as functions."""
|
|
121
121
|
schemas = C.get_all_schemas()
|
|
122
122
|
return [schema for schema in schemas if schema.has_function or schema.has_context_dependent_function] # type: ignore
|
onnx/defs/data_type_utils.cc
CHANGED
|
@@ -139,7 +139,6 @@ std::string DataTypeUtils::ToString(const TypeProto& type_proto, const std::stri
|
|
|
139
139
|
}
|
|
140
140
|
#ifdef ONNX_ML
|
|
141
141
|
case TypeProto::ValueCase::kOpaqueType: {
|
|
142
|
-
static const std::string empty;
|
|
143
142
|
std::string result;
|
|
144
143
|
const auto& op_type = type_proto.opaque_type();
|
|
145
144
|
result.append(left).append("opaque(");
|
onnx/defs/gen_doc.py
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
# Copyright (c) ONNX Project Contributors
|
|
4
4
|
|
|
5
5
|
# SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
from __future__ import annotations
|
|
6
7
|
|
|
7
8
|
import os
|
|
8
9
|
from collections import defaultdict
|
|
9
|
-
from typing import Any,
|
|
10
|
+
from typing import Any, NamedTuple, Sequence
|
|
10
11
|
|
|
11
12
|
import numpy as np
|
|
12
13
|
|
|
@@ -75,7 +76,7 @@ def display_version_link(name: str, version: int, changelog: str) -> str:
|
|
|
75
76
|
|
|
76
77
|
|
|
77
78
|
def generate_formal_parameter_tags(formal_parameter: OpSchema.FormalParameter) -> str:
|
|
78
|
-
tags:
|
|
79
|
+
tags: list[str] = []
|
|
79
80
|
if OpSchema.FormalParameterOption.Optional == formal_parameter.option:
|
|
80
81
|
tags = ["optional"]
|
|
81
82
|
elif OpSchema.FormalParameterOption.Variadic == formal_parameter.option:
|
|
@@ -256,7 +257,7 @@ def main(args: Args) -> None:
|
|
|
256
257
|
)
|
|
257
258
|
|
|
258
259
|
# domain -> version -> [schema]
|
|
259
|
-
dv_index:
|
|
260
|
+
dv_index: dict[str, dict[int, list[OpSchema]]] = defaultdict(
|
|
260
261
|
lambda: defaultdict(list)
|
|
261
262
|
)
|
|
262
263
|
for schema in defs.get_all_schemas_with_history():
|
|
@@ -300,7 +301,7 @@ def main(args: Args) -> None:
|
|
|
300
301
|
)
|
|
301
302
|
|
|
302
303
|
# domain -> support level -> name -> [schema]
|
|
303
|
-
index:
|
|
304
|
+
index: dict[str, dict[int, dict[str, list[OpSchema]]]] = defaultdict(
|
|
304
305
|
lambda: defaultdict(lambda: defaultdict(list))
|
|
305
306
|
)
|
|
306
307
|
for schema in defs.get_all_schemas_with_history():
|
|
@@ -310,10 +311,10 @@ def main(args: Args) -> None:
|
|
|
310
311
|
|
|
311
312
|
# Preprocess the Operator Schemas
|
|
312
313
|
# [(domain, [(support_level, [(schema name, current schema, all versions schemas)])])]
|
|
313
|
-
operator_schemas:
|
|
314
|
-
|
|
314
|
+
operator_schemas: list[
|
|
315
|
+
tuple[str, list[tuple[int, list[tuple[str, OpSchema, list[OpSchema]]]]]]
|
|
315
316
|
] = []
|
|
316
|
-
existing_ops:
|
|
317
|
+
existing_ops: set[str] = set()
|
|
317
318
|
for domain, _supportmap in sorted(index.items()):
|
|
318
319
|
if not should_render_domain(domain, args.output):
|
|
319
320
|
continue
|
|
@@ -357,7 +358,7 @@ def main(args: Args) -> None:
|
|
|
357
358
|
if function_ops:
|
|
358
359
|
fout.write("|**Function**|**Since version**|**Function version**|\n")
|
|
359
360
|
for n, schema, versions, function_versions in function_ops:
|
|
360
|
-
s = '|{}<a href="#{}">{}</a>|{}|{}|\n'.format(
|
|
361
|
+
s = '|{}<a href="#{}">{}</a>|{}|{}|\n'.format( # noqa: UP032
|
|
361
362
|
support_level_str(schema.support_level),
|
|
362
363
|
format_name_with_domain(domain, n),
|
|
363
364
|
format_name_with_domain(domain, n),
|