onnx 1.16.1__cp312-cp312-win32.whl → 1.17.0__cp312-cp312-win32.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.cp312-win32.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
|
@@ -53,7 +53,7 @@ def get_available_versions(schema: OpSchema) -> set[int]:
|
|
|
53
53
|
versions.add(
|
|
54
54
|
defs.get_schema(schema.name, version, schema.domain).since_version
|
|
55
55
|
)
|
|
56
|
-
except SchemaError:
|
|
56
|
+
except SchemaError: # noqa: PERF203
|
|
57
57
|
break
|
|
58
58
|
return versions
|
|
59
59
|
|
|
@@ -399,7 +399,7 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
399
399
|
@unittest.skip(
|
|
400
400
|
"Issue #5960"
|
|
401
401
|
) # FIXME(#5960) propagateElemTypeFromAttributeToOutput does not validate against output type constraints
|
|
402
|
-
def test_cast_to_complex(self, _, version) -> None:
|
|
402
|
+
def test_cast_to_complex(self, _, version) -> None: # noqa: ARG002
|
|
403
403
|
graph = self._make_graph(
|
|
404
404
|
[("x", TensorProto.FLOAT, (2, 4, 3))],
|
|
405
405
|
[make_node("Cast", ["x"], ["y"], to=TensorProto.COMPLEX128)],
|
|
@@ -4594,6 +4594,32 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
4594
4594
|
)
|
|
4595
4595
|
self._assert_inferred(graph, [make_tensor_value_info("Y", TensorProto.FLOAT, (2, None, 3, 5))]) # type: ignore
|
|
4596
4596
|
|
|
4597
|
+
def test_onehot_without_axis_2(self) -> None:
|
|
4598
|
+
graph = self._make_graph(
|
|
4599
|
+
[
|
|
4600
|
+
("indices", TensorProto.INT64, (2, 2)),
|
|
4601
|
+
("depth", TensorProto.INT64, ()),
|
|
4602
|
+
("values", TensorProto.FLOAT, (2,)),
|
|
4603
|
+
],
|
|
4604
|
+
[make_node("OneHot", ["indices", "depth", "values"], "Y")],
|
|
4605
|
+
[],
|
|
4606
|
+
initializer=[make_tensor("depth", TensorProto.INT64, (), (256,))],
|
|
4607
|
+
)
|
|
4608
|
+
self._assert_inferred(graph, [make_tensor_value_info("Y", TensorProto.FLOAT, (2, 2, 256))]) # type: ignore
|
|
4609
|
+
|
|
4610
|
+
def test_onehot_with_axis_2(self) -> None:
|
|
4611
|
+
graph = self._make_graph(
|
|
4612
|
+
[
|
|
4613
|
+
("indices", TensorProto.INT64, (2, 3, 5)),
|
|
4614
|
+
("depth", TensorProto.INT64, (1,)),
|
|
4615
|
+
("values", TensorProto.FLOAT, (2,)),
|
|
4616
|
+
],
|
|
4617
|
+
[make_node("OneHot", ["indices", "depth", "values"], "Y", axis=1)],
|
|
4618
|
+
[],
|
|
4619
|
+
initializer=[make_tensor("depth", TensorProto.INT64, (1,), (256,))],
|
|
4620
|
+
)
|
|
4621
|
+
self._assert_inferred(graph, [make_tensor_value_info("Y", TensorProto.FLOAT, (2, 256, 3, 5))]) # type: ignore
|
|
4622
|
+
|
|
4597
4623
|
def test_loop(self) -> None:
|
|
4598
4624
|
# can't use self._make_graph for the subgraph as it add more inputs for the Reshape operations it inserts.
|
|
4599
4625
|
# this breaks the subgraph inferencing as it expects the number of inputs passed from Loop to match
|
|
@@ -7026,7 +7052,7 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7026
7052
|
[make_node("Einsum", ["x"], ["y"], equation="ij->ji")],
|
|
7027
7053
|
[],
|
|
7028
7054
|
)
|
|
7029
|
-
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (
|
|
7055
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (4, 3))]) # type: ignore
|
|
7030
7056
|
|
|
7031
7057
|
def test_einsum_dot(self) -> None:
|
|
7032
7058
|
graph = self._make_graph(
|
|
@@ -7050,7 +7076,7 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7050
7076
|
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,ab->ijab")],
|
|
7051
7077
|
[],
|
|
7052
7078
|
)
|
|
7053
|
-
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (
|
|
7079
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 5, 7, 9))]) # type: ignore
|
|
7054
7080
|
|
|
7055
7081
|
def test_einsum_sum_along_dim(self) -> None:
|
|
7056
7082
|
graph = self._make_graph(
|
|
@@ -7058,7 +7084,7 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7058
7084
|
[make_node("Einsum", ["x"], ["y"], equation="i j->i ")],
|
|
7059
7085
|
[],
|
|
7060
7086
|
)
|
|
7061
|
-
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (
|
|
7087
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3,))]) # type: ignore
|
|
7062
7088
|
|
|
7063
7089
|
def test_einsum_ellipsis(self) -> None:
|
|
7064
7090
|
graph = self._make_graph(
|
|
@@ -7066,26 +7092,36 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7066
7092
|
[make_node("Einsum", ["x"], ["y"], equation="... ii ->... i")],
|
|
7067
7093
|
[],
|
|
7068
7094
|
)
|
|
7069
|
-
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (
|
|
7095
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3, 4))]) # type: ignore
|
|
7070
7096
|
|
|
7071
7097
|
def test_einsum_ellipsis_2(self) -> None:
|
|
7072
7098
|
graph = self._make_graph(
|
|
7073
|
-
[("x", TensorProto.FLOAT, (2,
|
|
7099
|
+
[("x", TensorProto.FLOAT, (2, 3, 4)), ("y", TensorProto.FLOAT, (2, 4, 5))],
|
|
7074
7100
|
[make_node("Einsum", ["x", "y"], ["z"], equation="...ij,...jk->...ik")],
|
|
7075
7101
|
[],
|
|
7076
7102
|
)
|
|
7077
7103
|
self._assert_inferred(
|
|
7078
|
-
graph, [make_tensor_value_info("z", TensorProto.FLOAT, (
|
|
7104
|
+
graph, [make_tensor_value_info("z", TensorProto.FLOAT, (2, 3, 5))]
|
|
7079
7105
|
) # type: ignore
|
|
7080
7106
|
|
|
7081
7107
|
def test_einsum_ellipsis_3(self) -> None:
|
|
7082
7108
|
graph = self._make_graph(
|
|
7083
|
-
[("x", TensorProto.FLOAT, (2,
|
|
7109
|
+
[("x", TensorProto.FLOAT, (2, 3, 4)), ("y", TensorProto.FLOAT, (2, 4, 5))],
|
|
7084
7110
|
[make_node("Einsum", ["x", "y"], ["z"], equation="...ij,...jk")],
|
|
7085
7111
|
[],
|
|
7086
7112
|
)
|
|
7087
7113
|
self._assert_inferred(
|
|
7088
|
-
graph, [make_tensor_value_info("z", TensorProto.FLOAT, (
|
|
7114
|
+
graph, [make_tensor_value_info("z", TensorProto.FLOAT, (2, 3, 5))]
|
|
7115
|
+
) # type: ignore
|
|
7116
|
+
|
|
7117
|
+
def test_einsum_ellipsis_broadcast(self) -> None:
|
|
7118
|
+
graph = self._make_graph(
|
|
7119
|
+
[("x", TensorProto.FLOAT, (1, 3, 4)), ("y", TensorProto.FLOAT, (32, 4, 5))],
|
|
7120
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="...ij,...jk->...ik")],
|
|
7121
|
+
[],
|
|
7122
|
+
)
|
|
7123
|
+
self._assert_inferred(
|
|
7124
|
+
graph, [make_tensor_value_info("z", TensorProto.FLOAT, (32, 3, 5))]
|
|
7089
7125
|
) # type: ignore
|
|
7090
7126
|
|
|
7091
7127
|
def test_einsum_contraction(self) -> None:
|
|
@@ -7099,11 +7135,7 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7099
7135
|
)
|
|
7100
7136
|
self._assert_inferred(
|
|
7101
7137
|
graph,
|
|
7102
|
-
[
|
|
7103
|
-
make_tensor_value_info(
|
|
7104
|
-
"z", TensorProto.FLOAT, (None, None, None, None, None)
|
|
7105
|
-
)
|
|
7106
|
-
],
|
|
7138
|
+
[make_tensor_value_info("z", TensorProto.FLOAT, (5, 6, 7, 9, 10))],
|
|
7107
7139
|
) # type: ignore
|
|
7108
7140
|
|
|
7109
7141
|
def test_einsum_contraction_2(self) -> None:
|
|
@@ -7113,7 +7145,7 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7113
7145
|
[],
|
|
7114
7146
|
)
|
|
7115
7147
|
self._assert_inferred(
|
|
7116
|
-
graph, [make_tensor_value_info("z", TensorProto.FLOAT, (
|
|
7148
|
+
graph, [make_tensor_value_info("z", TensorProto.FLOAT, (4, 5))]
|
|
7117
7149
|
) # type: ignore
|
|
7118
7150
|
|
|
7119
7151
|
def test_einsum_batch_matmul(self) -> None:
|
|
@@ -7122,7 +7154,7 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7122
7154
|
[make_node("Einsum", ["x", "y"], ["z"], equation="bij , b jk-> bik")],
|
|
7123
7155
|
[],
|
|
7124
7156
|
)
|
|
7125
|
-
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (
|
|
7157
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (5, 2, 4))]) # type: ignore
|
|
7126
7158
|
|
|
7127
7159
|
def test_einsum_left_hand_eqn(self) -> None:
|
|
7128
7160
|
graph = self._make_graph(
|
|
@@ -7130,7 +7162,7 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7130
7162
|
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,kl")],
|
|
7131
7163
|
[],
|
|
7132
7164
|
)
|
|
7133
|
-
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (
|
|
7165
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (2, 3, 3, 4))]) # type: ignore
|
|
7134
7166
|
|
|
7135
7167
|
def test_einsum_incorrect_num_inputs(self) -> None:
|
|
7136
7168
|
graph = self._make_graph(
|
|
@@ -7144,6 +7176,244 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
7144
7176
|
)
|
|
7145
7177
|
self.assertRaises(onnx.shape_inference.InferenceError, self._inferred, graph)
|
|
7146
7178
|
|
|
7179
|
+
def test_einsum_view_A1(self) -> None: # returns a view of A1
|
|
7180
|
+
graph = self._make_graph(
|
|
7181
|
+
[("x", TensorProto.FLOAT, (3,))],
|
|
7182
|
+
[make_node("Einsum", ["x"], ["y"], equation="i")],
|
|
7183
|
+
[],
|
|
7184
|
+
)
|
|
7185
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3,))]) # type: ignore
|
|
7186
|
+
|
|
7187
|
+
def test_einsum_sum_A1(self) -> None: # sums the values of A1
|
|
7188
|
+
graph = self._make_graph(
|
|
7189
|
+
[("x", TensorProto.FLOAT, (3,))],
|
|
7190
|
+
[make_node("Einsum", ["x"], ["y"], equation="i->")],
|
|
7191
|
+
[],
|
|
7192
|
+
)
|
|
7193
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, ())]) # type: ignore
|
|
7194
|
+
|
|
7195
|
+
def test_einsum_element_wise_multiplication_A1_B1(
|
|
7196
|
+
self,
|
|
7197
|
+
) -> None: # element-wise multiplication of A1 and B1
|
|
7198
|
+
graph = self._make_graph(
|
|
7199
|
+
[("x", TensorProto.FLOAT, (3,)), ("y", TensorProto.FLOAT, (3,))],
|
|
7200
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="i,i->i")],
|
|
7201
|
+
[],
|
|
7202
|
+
)
|
|
7203
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3,))]) # type: ignore
|
|
7204
|
+
|
|
7205
|
+
def test_einsum_inner_product_A1_B1(self) -> None: # inner product of A1 and B1
|
|
7206
|
+
graph = self._make_graph(
|
|
7207
|
+
[("x", TensorProto.FLOAT, (3,)), ("y", TensorProto.FLOAT, (3,))],
|
|
7208
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="i,i->")],
|
|
7209
|
+
[],
|
|
7210
|
+
)
|
|
7211
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, ())]) # type: ignore
|
|
7212
|
+
|
|
7213
|
+
def test_einsum_outer_product_A1_B1(self) -> None: # outer product of A1 and B1
|
|
7214
|
+
graph = self._make_graph(
|
|
7215
|
+
[("x", TensorProto.FLOAT, (3,)), ("y", TensorProto.FLOAT, (3,))],
|
|
7216
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="i,j->ij")],
|
|
7217
|
+
[],
|
|
7218
|
+
)
|
|
7219
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7220
|
+
|
|
7221
|
+
def test_einsum_view_A2(self) -> None: # returns a view of A2
|
|
7222
|
+
graph = self._make_graph(
|
|
7223
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7224
|
+
[make_node("Einsum", ["x"], ["y"], equation="ij->ij")],
|
|
7225
|
+
[],
|
|
7226
|
+
)
|
|
7227
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7228
|
+
|
|
7229
|
+
def test_einsum_view_A2_2(self) -> None: # returns a view of A2, another case
|
|
7230
|
+
graph = self._make_graph(
|
|
7231
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7232
|
+
[make_node("Einsum", ["x"], ["y"], equation="ij")],
|
|
7233
|
+
[],
|
|
7234
|
+
)
|
|
7235
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7236
|
+
|
|
7237
|
+
def test_einsum_transpose_A2(self) -> None: # view transpose of A2
|
|
7238
|
+
graph = self._make_graph(
|
|
7239
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7240
|
+
[make_node("Einsum", ["x"], ["y"], equation="ji")],
|
|
7241
|
+
[],
|
|
7242
|
+
)
|
|
7243
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7244
|
+
|
|
7245
|
+
def test_einsum_transpose_A2_to_ij(self) -> None: # view transpose of A2
|
|
7246
|
+
graph = self._make_graph(
|
|
7247
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7248
|
+
[make_node("Einsum", ["x"], ["y"], equation="ji->ij")],
|
|
7249
|
+
[],
|
|
7250
|
+
)
|
|
7251
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7252
|
+
|
|
7253
|
+
def test_einsum_diag_A2(self) -> None: # view main diagonal of A2
|
|
7254
|
+
graph = self._make_graph(
|
|
7255
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7256
|
+
[make_node("Einsum", ["x"], ["y"], equation="ii->i")],
|
|
7257
|
+
[],
|
|
7258
|
+
)
|
|
7259
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3,))]) # type: ignore
|
|
7260
|
+
|
|
7261
|
+
def test_einsum_trace_A2(self) -> None: # sums main diagonal of A2
|
|
7262
|
+
graph = self._make_graph(
|
|
7263
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7264
|
+
[make_node("Einsum", ["x"], ["y"], equation="ii->")],
|
|
7265
|
+
[],
|
|
7266
|
+
)
|
|
7267
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, ())]) # type: ignore
|
|
7268
|
+
|
|
7269
|
+
def test_einsum_sum_A2(self) -> None: # sums the values of A2
|
|
7270
|
+
graph = self._make_graph(
|
|
7271
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7272
|
+
[make_node("Einsum", ["x"], ["y"], equation="ij->")],
|
|
7273
|
+
[],
|
|
7274
|
+
)
|
|
7275
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, ())]) # type: ignore
|
|
7276
|
+
|
|
7277
|
+
def test_einsum_sum_columns_A2(
|
|
7278
|
+
self,
|
|
7279
|
+
) -> None: # sum down the columns of A2 (across rows)
|
|
7280
|
+
graph = self._make_graph(
|
|
7281
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7282
|
+
[make_node("Einsum", ["x"], ["y"], equation="ij->j")],
|
|
7283
|
+
[],
|
|
7284
|
+
)
|
|
7285
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3,))]) # type: ignore
|
|
7286
|
+
|
|
7287
|
+
def test_einsum_sum_rows_A2(self) -> None: # sum horizontally along the rows of A2
|
|
7288
|
+
graph = self._make_graph(
|
|
7289
|
+
[("x", TensorProto.FLOAT, (3, 3))],
|
|
7290
|
+
[make_node("Einsum", ["x"], ["y"], equation="ij->i")],
|
|
7291
|
+
[],
|
|
7292
|
+
)
|
|
7293
|
+
self._assert_inferred(graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3,))]) # type: ignore
|
|
7294
|
+
|
|
7295
|
+
def test_einsum_element_wise_multiplication_A2_B2(
|
|
7296
|
+
self,
|
|
7297
|
+
) -> None: # element-wise multiplication of A2 and B2
|
|
7298
|
+
graph = self._make_graph(
|
|
7299
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7300
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,ij->ij")],
|
|
7301
|
+
[],
|
|
7302
|
+
)
|
|
7303
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7304
|
+
|
|
7305
|
+
def test_einsum_element_wise_multiplication_A2_B2_transpose(
|
|
7306
|
+
self,
|
|
7307
|
+
) -> None: # element-wise multiplication of A2 and B2.T
|
|
7308
|
+
graph = self._make_graph(
|
|
7309
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7310
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,ji->ij")],
|
|
7311
|
+
[],
|
|
7312
|
+
)
|
|
7313
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7314
|
+
|
|
7315
|
+
def test_einsum_matrix_multiplication_A2_B2(
|
|
7316
|
+
self,
|
|
7317
|
+
) -> None: # matrix multiplication of A2 and B2
|
|
7318
|
+
graph = self._make_graph(
|
|
7319
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7320
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,jk")],
|
|
7321
|
+
[],
|
|
7322
|
+
)
|
|
7323
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7324
|
+
|
|
7325
|
+
def test_einsum_matrix_multiplication_A2_B2_to_ik(
|
|
7326
|
+
self,
|
|
7327
|
+
) -> None: # matrix multiplication of A2 and B2
|
|
7328
|
+
graph = self._make_graph(
|
|
7329
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7330
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,jk->ik")],
|
|
7331
|
+
[],
|
|
7332
|
+
)
|
|
7333
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7334
|
+
|
|
7335
|
+
def test_einsum_matrix_multiplication_A3_B3(
|
|
7336
|
+
self,
|
|
7337
|
+
) -> None: # matrix multiplication of A3 and B3 (a stack of 2D matrices)
|
|
7338
|
+
graph = self._make_graph(
|
|
7339
|
+
[("x", TensorProto.FLOAT, (2, 3, 3)), ("y", TensorProto.FLOAT, (2, 3, 3))],
|
|
7340
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="bij,bjk->bik")],
|
|
7341
|
+
[],
|
|
7342
|
+
)
|
|
7343
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (2, 3, 3))]) # type: ignore
|
|
7344
|
+
|
|
7345
|
+
def test_einsum_matrix_multiplication_A3_B3_transpose(
|
|
7346
|
+
self,
|
|
7347
|
+
) -> None: # matrix multiplication of A3 and B3 (a stack of 2D matrices)
|
|
7348
|
+
graph = self._make_graph(
|
|
7349
|
+
[("x", TensorProto.FLOAT, (2, 3, 3)), ("y", TensorProto.FLOAT, (2, 3, 3))],
|
|
7350
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="bij,bkj->bik")],
|
|
7351
|
+
[],
|
|
7352
|
+
)
|
|
7353
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (2, 3, 3))]) # type: ignore
|
|
7354
|
+
|
|
7355
|
+
def test_einsum_inner_product_A2_B2(self) -> None: # inner product of A2 and B2
|
|
7356
|
+
graph = self._make_graph(
|
|
7357
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7358
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,kj->ik")],
|
|
7359
|
+
[],
|
|
7360
|
+
)
|
|
7361
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7362
|
+
|
|
7363
|
+
def test_einsum_row_multiplication_A2_B2(
|
|
7364
|
+
self,
|
|
7365
|
+
) -> None: # each row of A2 multiplied by B2
|
|
7366
|
+
graph = self._make_graph(
|
|
7367
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7368
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,kj->ikj")],
|
|
7369
|
+
[],
|
|
7370
|
+
)
|
|
7371
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3, 3))]) # type: ignore
|
|
7372
|
+
|
|
7373
|
+
def test_einsum_value_multiplication_A2_B2(
|
|
7374
|
+
self,
|
|
7375
|
+
) -> None: # each value of A2 multiplied by B2
|
|
7376
|
+
graph = self._make_graph(
|
|
7377
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7378
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,kl->ijkl")],
|
|
7379
|
+
[],
|
|
7380
|
+
)
|
|
7381
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3, 3, 3))]) # type: ignore
|
|
7382
|
+
|
|
7383
|
+
def test_einsum_scalar_times_array(self) -> None: # Scalar times array
|
|
7384
|
+
graph = self._make_graph(
|
|
7385
|
+
[("x", TensorProto.FLOAT, ()), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7386
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation=",ij->ij")],
|
|
7387
|
+
[],
|
|
7388
|
+
)
|
|
7389
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3, 3))]) # type: ignore
|
|
7390
|
+
|
|
7391
|
+
def test_einsum_matrix_vector_A2_B1(self) -> None: # Matrix and vector.
|
|
7392
|
+
graph = self._make_graph(
|
|
7393
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3,))],
|
|
7394
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ij,j->i")],
|
|
7395
|
+
[],
|
|
7396
|
+
)
|
|
7397
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3,))]) # type: ignore
|
|
7398
|
+
|
|
7399
|
+
def test_einsum_diag_multiplication_A2_B2(
|
|
7400
|
+
self,
|
|
7401
|
+
) -> None: # diagonals multiplied by each other
|
|
7402
|
+
graph = self._make_graph(
|
|
7403
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7404
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ii,ii->i")],
|
|
7405
|
+
[],
|
|
7406
|
+
)
|
|
7407
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, (3,))]) # type: ignore
|
|
7408
|
+
|
|
7409
|
+
def test_einsum_diag_dot_product_A2_B2(self) -> None: # dot product of diagonals
|
|
7410
|
+
graph = self._make_graph(
|
|
7411
|
+
[("x", TensorProto.FLOAT, (3, 3)), ("y", TensorProto.FLOAT, (3, 3))],
|
|
7412
|
+
[make_node("Einsum", ["x", "y"], ["z"], equation="ii,ii->")],
|
|
7413
|
+
[],
|
|
7414
|
+
)
|
|
7415
|
+
self._assert_inferred(graph, [make_tensor_value_info("z", TensorProto.FLOAT, ())]) # type: ignore
|
|
7416
|
+
|
|
7147
7417
|
def test_negative_log_likehood_shape_is_NCdd(self) -> None:
|
|
7148
7418
|
N, C = 3, 4
|
|
7149
7419
|
graph = self._make_graph(
|
|
@@ -9902,6 +10172,66 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
9902
10172
|
op_schema.name, op_schema.since_version, op_schema.domain
|
|
9903
10173
|
)
|
|
9904
10174
|
|
|
10175
|
+
def test_issue_layer_normalization_6187(self):
|
|
10176
|
+
modeltxt = """
|
|
10177
|
+
<
|
|
10178
|
+
ir_version: 10,
|
|
10179
|
+
opset_import: ["" : 17]
|
|
10180
|
+
>
|
|
10181
|
+
graph (float in0, float[2,7,8,1,3] in1, float[3,7] in2) => () {
|
|
10182
|
+
out0, out1, out2 = LayerNormalization <epsilon: float = -841.058, stash_type: int = -940> (in0, in1, in2)
|
|
10183
|
+
}
|
|
10184
|
+
"""
|
|
10185
|
+
model = onnx.parser.parse_model(modeltxt)
|
|
10186
|
+
with self.assertRaises(onnx.shape_inference.InferenceError):
|
|
10187
|
+
onnx.checker.check_model(model, full_check=True)
|
|
10188
|
+
onnx.shape_inference.infer_shapes(model)
|
|
10189
|
+
|
|
10190
|
+
def test_issue_conv_6180(self):
|
|
10191
|
+
modeltxt = """
|
|
10192
|
+
<
|
|
10193
|
+
ir_version: 9,
|
|
10194
|
+
opset_import: ["" : 11]
|
|
10195
|
+
>
|
|
10196
|
+
graph (float[7,6,1,5] in0, float in1, float[7,2,3,2,1] in2) => () {
|
|
10197
|
+
out0 = Conv <auto_pad = "NOTSET", group = 1> (in0, in1, in2)
|
|
10198
|
+
}
|
|
10199
|
+
"""
|
|
10200
|
+
model = onnx.parser.parse_model(modeltxt)
|
|
10201
|
+
with self.assertRaises(onnx.shape_inference.InferenceError):
|
|
10202
|
+
onnx.checker.check_model(model, full_check=True)
|
|
10203
|
+
onnx.shape_inference.infer_shapes(model)
|
|
10204
|
+
|
|
10205
|
+
def test_issue_gemm_6185(self):
|
|
10206
|
+
modeltxt = """
|
|
10207
|
+
<
|
|
10208
|
+
ir_version: 10,
|
|
10209
|
+
opset_import: ["" : 6]
|
|
10210
|
+
>
|
|
10211
|
+
graph (double[2,1] in0, double in1, double[2] in2) => () {
|
|
10212
|
+
out0 = Gemm <alpha: float = 1, beta: float = -693.752, broadcast: int = -436, transB: int = 823> (in0, in1, in2)
|
|
10213
|
+
}
|
|
10214
|
+
"""
|
|
10215
|
+
model = onnx.parser.parse_model(modeltxt)
|
|
10216
|
+
with self.assertRaises(onnx.checker.ValidationError):
|
|
10217
|
+
onnx.checker.check_model(model, full_check=True)
|
|
10218
|
+
onnx.shape_inference.infer_shapes(model)
|
|
10219
|
+
|
|
10220
|
+
def test_issue_stft_6186(self):
|
|
10221
|
+
modeltxt = """
|
|
10222
|
+
<
|
|
10223
|
+
ir_version: 10,
|
|
10224
|
+
opset_import: ["" : 17]
|
|
10225
|
+
>
|
|
10226
|
+
graph (float16[3] in0, int32[2] in1, float16[7,8,8,8] in2, int32[8,1,7,2] in3) => () {
|
|
10227
|
+
out0 = STFT (in0, in1, in2, in3)
|
|
10228
|
+
}
|
|
10229
|
+
"""
|
|
10230
|
+
model = onnx.parser.parse_model(modeltxt)
|
|
10231
|
+
with self.assertRaises(onnx.shape_inference.InferenceError):
|
|
10232
|
+
onnx.checker.check_model(model, full_check=True)
|
|
10233
|
+
onnx.shape_inference.infer_shapes(model)
|
|
10234
|
+
|
|
9905
10235
|
|
|
9906
10236
|
if __name__ == "__main__":
|
|
9907
|
-
unittest.main()
|
|
10237
|
+
unittest.main(verbosity=2)
|
onnx/test/symbolic_shape_test.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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 unittest
|
|
6
|
-
from typing import List, Optional
|
|
7
7
|
|
|
8
8
|
import onnx.shape_inference
|
|
9
9
|
from onnx import ModelProto, TensorProto, TensorShapeProto, ValueInfoProto, helper
|
|
@@ -12,7 +12,7 @@ from onnx.helper import make_model, make_tensor_value_info
|
|
|
12
12
|
|
|
13
13
|
class TestSymbolicShape(unittest.TestCase):
|
|
14
14
|
def _assert_valueinfo_shape(
|
|
15
|
-
self, onnx_model: ModelProto, value_infos:
|
|
15
|
+
self, onnx_model: ModelProto, value_infos: list[ValueInfoProto]
|
|
16
16
|
) -> None:
|
|
17
17
|
"""Assert onnx_model.value_info should be the same as expected value_infos
|
|
18
18
|
Instead of exact symbol, use -1 to represent symbolic shape in expected value_infos
|
|
@@ -48,7 +48,7 @@ class TestSymbolicShape(unittest.TestCase):
|
|
|
48
48
|
|
|
49
49
|
def _get_shape_from_name(
|
|
50
50
|
self, onnx_model: ModelProto, name: str
|
|
51
|
-
) ->
|
|
51
|
+
) -> TensorShapeProto | None:
|
|
52
52
|
"""Get shape from tensor_type or sparse_tensor_type according to given name"""
|
|
53
53
|
inputs = list(onnx_model.graph.input)
|
|
54
54
|
outputs = list(onnx_model.graph.output)
|