onnx 1.16.1__cp311-cp311-win_amd64.whl → 1.17.0__cp311-cp311-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.cp311-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
onnx/test/helper_test.py
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# Copyright (c) ONNX Project Contributors
|
|
2
2
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
4
|
+
from __future__ import annotations
|
|
5
5
|
|
|
6
6
|
import itertools
|
|
7
|
+
import math
|
|
7
8
|
import random
|
|
8
9
|
import struct
|
|
9
10
|
import unittest
|
|
10
|
-
from typing import Any
|
|
11
|
+
from typing import Any
|
|
11
12
|
|
|
12
13
|
import numpy as np
|
|
13
14
|
import parameterized
|
|
@@ -22,12 +23,14 @@ from onnx import (
|
|
|
22
23
|
SequenceProto,
|
|
23
24
|
TensorProto,
|
|
24
25
|
TypeProto,
|
|
26
|
+
_custom_element_types,
|
|
25
27
|
checker,
|
|
26
28
|
defs,
|
|
27
29
|
helper,
|
|
28
30
|
numpy_helper,
|
|
29
31
|
)
|
|
30
32
|
from onnx.reference.op_run import to_array_extended
|
|
33
|
+
from onnx.reference.ops.op_cast import Cast_19 as Cast
|
|
31
34
|
|
|
32
35
|
|
|
33
36
|
class TestHelperAttributeFunctions(unittest.TestCase):
|
|
@@ -253,7 +256,7 @@ class TestHelperAttributeFunctions(unittest.TestCase):
|
|
|
253
256
|
def _extend(
|
|
254
257
|
attr: AttributeProto,
|
|
255
258
|
type_: AttributeProto.AttributeType,
|
|
256
|
-
var:
|
|
259
|
+
var: list[Any],
|
|
257
260
|
value: Any,
|
|
258
261
|
) -> None:
|
|
259
262
|
var.extend(value)
|
|
@@ -382,14 +385,14 @@ class TestHelperNodeFunctions(unittest.TestCase):
|
|
|
382
385
|
self.assertRaises(checker.ValidationError, checker.check_model, model_def)
|
|
383
386
|
|
|
384
387
|
def test_model_irversion(self) -> None:
|
|
385
|
-
def mk_model(opset_versions:
|
|
388
|
+
def mk_model(opset_versions: list[tuple[str, int]]) -> ModelProto:
|
|
386
389
|
graph = helper.make_graph([], "my graph", [], [])
|
|
387
390
|
return helper.make_model_gen_version(
|
|
388
391
|
graph,
|
|
389
392
|
opset_imports=[helper.make_opsetid(*pair) for pair in opset_versions],
|
|
390
393
|
)
|
|
391
394
|
|
|
392
|
-
def test(opset_versions:
|
|
395
|
+
def test(opset_versions: list[tuple[str, int]], ir_version: int) -> None:
|
|
393
396
|
model = mk_model(opset_versions)
|
|
394
397
|
self.assertEqual(model.ir_version, ir_version)
|
|
395
398
|
|
|
@@ -407,6 +410,7 @@ class TestHelperNodeFunctions(unittest.TestCase):
|
|
|
407
410
|
test([("", 19)], 9)
|
|
408
411
|
test([("", 20)], 9)
|
|
409
412
|
test([("", 21)], 10)
|
|
413
|
+
test([("", 22)], 10)
|
|
410
414
|
# standard opset can be referred to using empty-string or "ai.onnx"
|
|
411
415
|
test([("ai.onnx", 9)], 4)
|
|
412
416
|
test([("ai.onnx.ml", 2)], 6)
|
|
@@ -431,6 +435,10 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
431
435
|
)
|
|
432
436
|
self.assertEqual(string_list, list(tensor.string_data))
|
|
433
437
|
|
|
438
|
+
@unittest.skipIf(
|
|
439
|
+
version_utils.numpy_older_than("1.26.0"),
|
|
440
|
+
"The test requires numpy 1.26.0 or later",
|
|
441
|
+
)
|
|
434
442
|
def test_make_bfloat16_tensor(self) -> None:
|
|
435
443
|
# numpy doesn't support bf16, so we have to compute the correct result manually
|
|
436
444
|
np_array = np.array(
|
|
@@ -479,7 +487,10 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
479
487
|
vals=np_array,
|
|
480
488
|
)
|
|
481
489
|
self.assertEqual(tensor.name, "test")
|
|
482
|
-
np.testing.assert_equal(
|
|
490
|
+
np.testing.assert_equal(
|
|
491
|
+
Cast.eval(np_results, to=TensorProto.BFLOAT16), # type: ignore[arg-type]
|
|
492
|
+
numpy_helper.to_array(tensor),
|
|
493
|
+
)
|
|
483
494
|
|
|
484
495
|
def test_make_float8e4m3fn_tensor(self) -> None:
|
|
485
496
|
y = helper.make_tensor(
|
|
@@ -487,7 +498,7 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
487
498
|
)
|
|
488
499
|
ynp = numpy_helper.to_array(y)
|
|
489
500
|
expected = np.array([0, 0.5, 1, 448, 10], dtype=np.float32)
|
|
490
|
-
np.testing.assert_equal(expected, ynp)
|
|
501
|
+
np.testing.assert_equal(Cast.eval(expected, to=TensorProto.FLOAT8E4M3FN), ynp) # type: ignore[arg-type]
|
|
491
502
|
|
|
492
503
|
def test_make_float8e4m3fnuz_tensor(self) -> None:
|
|
493
504
|
y = helper.make_tensor(
|
|
@@ -498,7 +509,7 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
498
509
|
)
|
|
499
510
|
ynp = numpy_helper.to_array(y)
|
|
500
511
|
expected = np.array([0, 0.5, 1, 240, 10, 0, 0], dtype=np.float32)
|
|
501
|
-
np.testing.assert_equal(expected, ynp)
|
|
512
|
+
np.testing.assert_equal(Cast.eval(expected, to=TensorProto.FLOAT8E4M3FNUZ), ynp) # type: ignore[arg-type]
|
|
502
513
|
|
|
503
514
|
def test_make_float8e5m2_tensor(self) -> None:
|
|
504
515
|
y = helper.make_tensor(
|
|
@@ -506,7 +517,7 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
506
517
|
)
|
|
507
518
|
ynp = numpy_helper.to_array(y)
|
|
508
519
|
expected = np.array([0, 0.5, 1, 49152, 96], dtype=np.float32)
|
|
509
|
-
np.testing.assert_equal(expected, ynp)
|
|
520
|
+
np.testing.assert_equal(Cast.eval(expected, to=TensorProto.FLOAT8E5M2), ynp) # type: ignore[arg-type]
|
|
510
521
|
|
|
511
522
|
def test_make_float8e5m2fnuz_tensor(self) -> None:
|
|
512
523
|
y = helper.make_tensor(
|
|
@@ -517,8 +528,12 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
517
528
|
)
|
|
518
529
|
ynp = numpy_helper.to_array(y)
|
|
519
530
|
expected = np.array([0, 0.5, 1, 49152, 96, 0, 0], dtype=np.float32)
|
|
520
|
-
np.testing.assert_equal(expected, ynp)
|
|
531
|
+
np.testing.assert_equal(Cast.eval(expected, to=TensorProto.FLOAT8E5M2FNUZ), ynp) # type: ignore[arg-type]
|
|
521
532
|
|
|
533
|
+
@unittest.skipIf(
|
|
534
|
+
version_utils.numpy_older_than("1.26.0"),
|
|
535
|
+
"The test requires numpy 1.26.0 or later",
|
|
536
|
+
)
|
|
522
537
|
def test_make_bfloat16_tensor_raw(self) -> None:
|
|
523
538
|
# numpy doesn't support bf16, so we have to compute the correct result manually
|
|
524
539
|
np_array = np.array(
|
|
@@ -570,7 +585,11 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
570
585
|
raw=True,
|
|
571
586
|
)
|
|
572
587
|
self.assertEqual(tensor.name, "test")
|
|
573
|
-
np.testing.
|
|
588
|
+
np.testing.assert_allclose(
|
|
589
|
+
Cast.eval(np_results, to=TensorProto.BFLOAT16), # type: ignore[arg-type]
|
|
590
|
+
numpy_helper.to_array(tensor),
|
|
591
|
+
rtol=1e-4, # truncate is not nearest even rounding
|
|
592
|
+
)
|
|
574
593
|
|
|
575
594
|
def test_make_float8e4m3fn_tensor_raw(self) -> None:
|
|
576
595
|
expected = np.array([0, 0.5, 1, 448, 10], dtype=np.float32)
|
|
@@ -586,7 +605,7 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
586
605
|
raw=True,
|
|
587
606
|
)
|
|
588
607
|
ynp = numpy_helper.to_array(y)
|
|
589
|
-
np.testing.assert_equal(expected, ynp)
|
|
608
|
+
np.testing.assert_equal(Cast.eval(expected, to=TensorProto.FLOAT8E4M3FN), ynp) # type: ignore[arg-type]
|
|
590
609
|
|
|
591
610
|
def test_make_float8e4m3fnuz_tensor_raw(self) -> None:
|
|
592
611
|
expected = np.array([0, 0.5, 1, 240, 10], dtype=np.float32)
|
|
@@ -602,7 +621,7 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
602
621
|
raw=True,
|
|
603
622
|
)
|
|
604
623
|
ynp = numpy_helper.to_array(y)
|
|
605
|
-
np.testing.assert_equal(expected, ynp)
|
|
624
|
+
np.testing.assert_equal(Cast.eval(expected, to=TensorProto.FLOAT8E4M3FNUZ), ynp) # type: ignore[arg-type]
|
|
606
625
|
|
|
607
626
|
def test_make_float8e5m2_tensor_raw(self) -> None:
|
|
608
627
|
expected = np.array([0, 0.5, 1, 49152, 10], dtype=np.float32)
|
|
@@ -618,7 +637,7 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
618
637
|
raw=True,
|
|
619
638
|
)
|
|
620
639
|
ynp = numpy_helper.to_array(y)
|
|
621
|
-
np.testing.assert_equal(expected, ynp)
|
|
640
|
+
np.testing.assert_equal(Cast.eval(expected, to=TensorProto.FLOAT8E5M2), ynp) # type: ignore[arg-type]
|
|
622
641
|
|
|
623
642
|
def test_make_float8e5m2fnuz_tensor_raw(self) -> None:
|
|
624
643
|
expected = np.array([0, 0.5, 1, 49152, 10], dtype=np.float32)
|
|
@@ -635,7 +654,7 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
635
654
|
raw=True,
|
|
636
655
|
)
|
|
637
656
|
ynp = numpy_helper.to_array(y)
|
|
638
|
-
np.testing.assert_equal(expected, ynp)
|
|
657
|
+
np.testing.assert_equal(Cast.eval(expected, to=TensorProto.FLOAT8E5M2FNUZ), ynp) # type: ignore[arg-type]
|
|
639
658
|
|
|
640
659
|
@parameterized.parameterized.expand(
|
|
641
660
|
itertools.product(
|
|
@@ -656,14 +675,46 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
656
675
|
type_range[dtype][0], high=type_range[dtype][1] + 1, size=dims
|
|
657
676
|
)
|
|
658
677
|
y = helper.make_tensor("y", dtype, data.shape, data)
|
|
678
|
+
|
|
679
|
+
# Check the expected size of int32_data in bytes
|
|
680
|
+
expected_data_size = math.ceil(np.prod(data.shape) / 2.0)
|
|
681
|
+
actual_data_size = len(bytes(y.int32_data))
|
|
682
|
+
np.testing.assert_equal(actual_data_size, expected_data_size)
|
|
683
|
+
|
|
684
|
+
# Check the expected data values.
|
|
659
685
|
ynp = to_array_extended(y)
|
|
660
686
|
np.testing.assert_equal(data, ynp)
|
|
661
687
|
|
|
688
|
+
@parameterized.parameterized.expand(
|
|
689
|
+
itertools.product(
|
|
690
|
+
((5, 4, 6), (4, 6, 5), (3, 3), (1,), (2**10,)),
|
|
691
|
+
)
|
|
692
|
+
)
|
|
693
|
+
@unittest.skipIf(
|
|
694
|
+
version_utils.numpy_older_than("1.22.0"),
|
|
695
|
+
"The test requires numpy 1.22.0 or later",
|
|
696
|
+
)
|
|
697
|
+
def test_4bit_tensor_size(self, dims) -> None:
|
|
698
|
+
# A bug caused negative int4 values to inflate tensor size.
|
|
699
|
+
# So, test negative values here.
|
|
700
|
+
num_elems = np.prod(dims)
|
|
701
|
+
data = np.array([-4] * num_elems, dtype=np.int8).reshape(dims)
|
|
702
|
+
y = helper.make_tensor("y", TensorProto.INT4, data.shape, data)
|
|
703
|
+
|
|
704
|
+
# Check the expected size of int32_data in bytes
|
|
705
|
+
expected_data_size = math.ceil(num_elems / 2.0)
|
|
706
|
+
actual_data_size = len(bytes(y.int32_data))
|
|
707
|
+
np.testing.assert_equal(actual_data_size, expected_data_size)
|
|
708
|
+
|
|
662
709
|
@parameterized.parameterized.expand(
|
|
663
710
|
itertools.product(
|
|
664
711
|
(TensorProto.UINT4, TensorProto.INT4), ((5, 4, 6), (4, 6, 5), (3, 3), (1,))
|
|
665
712
|
)
|
|
666
713
|
)
|
|
714
|
+
@unittest.skipIf(
|
|
715
|
+
version_utils.numpy_older_than("1.26.0"),
|
|
716
|
+
"The test requires numpy 1.26.0 or later",
|
|
717
|
+
)
|
|
667
718
|
def test_make_4bit_raw_tensor(self, dtype, dims) -> None:
|
|
668
719
|
type_range = {
|
|
669
720
|
TensorProto.UINT4: (0, 15),
|
|
@@ -671,7 +722,7 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
671
722
|
}
|
|
672
723
|
data = np.random.randint(
|
|
673
724
|
type_range[dtype][0], high=type_range[dtype][1] + 1, size=dims
|
|
674
|
-
)
|
|
725
|
+
).astype(np.float32)
|
|
675
726
|
packed_data = helper.pack_float32_to_4bit(
|
|
676
727
|
data, signed=(dtype == TensorProto.INT4)
|
|
677
728
|
)
|
|
@@ -993,6 +1044,16 @@ class TestAttrTypeToStr(unittest.TestCase):
|
|
|
993
1044
|
result = helper._attr_type_to_str(9999)
|
|
994
1045
|
self.assertEqual(result, "UNDEFINED")
|
|
995
1046
|
|
|
1047
|
+
def test_custom_types(self):
|
|
1048
|
+
def _get(name):
|
|
1049
|
+
if hasattr(_custom_element_types, name):
|
|
1050
|
+
return getattr(_custom_element_types, name)
|
|
1051
|
+
name = f"float8{name}"
|
|
1052
|
+
return getattr(_custom_element_types, name)
|
|
1053
|
+
|
|
1054
|
+
for k, v in _custom_element_types.mapping_name_to_data_type.items():
|
|
1055
|
+
self.assertEqual(helper.np_dtype_to_tensor_dtype(_get(k)), v)
|
|
1056
|
+
|
|
996
1057
|
|
|
997
1058
|
if __name__ == "__main__":
|
|
998
1059
|
unittest.main()
|
onnx/test/hub_test.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
|
|
3
3
|
# Copyright (c) ONNX Project Contributors
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import unittest
|
|
6
|
-
from typing import Dict, List, Optional, Tuple, Union
|
|
7
7
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
|
|
@@ -33,21 +33,25 @@ RESHAPE_SCHEMA = max(
|
|
|
33
33
|
),
|
|
34
34
|
key=lambda s: s.since_version,
|
|
35
35
|
)
|
|
36
|
+
CLIP_SCHEMA = max(
|
|
37
|
+
(s for s in get_all_schemas_with_history() if s.name == "Clip" and s.domain == ""),
|
|
38
|
+
key=lambda s: s.since_version,
|
|
39
|
+
)
|
|
36
40
|
|
|
37
41
|
|
|
38
42
|
def _to_tensor_types(
|
|
39
|
-
tensor_types:
|
|
40
|
-
) ->
|
|
43
|
+
tensor_types: dict[str, tuple[int, tuple[int | str | None, ...]]]
|
|
44
|
+
) -> dict[str, TypeProto]:
|
|
41
45
|
return {key: make_tensor_type_proto(*value) for key, value in tensor_types.items()}
|
|
42
46
|
|
|
43
47
|
|
|
44
48
|
def _run_case(
|
|
45
49
|
schema: OpSchema,
|
|
46
|
-
input_names:
|
|
47
|
-
output_names:
|
|
48
|
-
input_types:
|
|
49
|
-
input_data:
|
|
50
|
-
) ->
|
|
50
|
+
input_names: list[str],
|
|
51
|
+
output_names: list[str],
|
|
52
|
+
input_types: dict[str, TypeProto],
|
|
53
|
+
input_data: dict[str, np.ndarray] | None = None,
|
|
54
|
+
) -> dict[str, TypeProto]:
|
|
51
55
|
if input_data is None:
|
|
52
56
|
input_data = {}
|
|
53
57
|
return infer_node_outputs(
|
|
@@ -97,6 +101,19 @@ class TestInferenceFunctionCall(unittest.TestCase):
|
|
|
97
101
|
for ins, outs in cases:
|
|
98
102
|
assert _run_case(ADD_SCHEMA, ["A", "B"], ["C"], _to_tensor_types(ins)) == _to_tensor_types(outs) # type: ignore
|
|
99
103
|
|
|
104
|
+
def test_clip_inference_with_optional_input(self) -> None:
|
|
105
|
+
# Test case where the second input is optional
|
|
106
|
+
input_names = ["X", "", "max"]
|
|
107
|
+
output_names = ["Y"]
|
|
108
|
+
input_types = _to_tensor_types(
|
|
109
|
+
{"X": (TensorProto.FLOAT, (3, 4)), "max": (TensorProto.FLOAT, ())}
|
|
110
|
+
)
|
|
111
|
+
expected_output_types = _to_tensor_types({"Y": (TensorProto.FLOAT, (3, 4))})
|
|
112
|
+
assert (
|
|
113
|
+
_run_case(CLIP_SCHEMA, input_names, output_names, input_types)
|
|
114
|
+
== expected_output_types
|
|
115
|
+
)
|
|
116
|
+
|
|
100
117
|
def test_add_inference_raises_errors(self) -> None:
|
|
101
118
|
with self.assertRaises(ValidationError):
|
|
102
119
|
_run_case(
|
onnx/test/inliner_test.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
|
import os
|
|
6
7
|
import tempfile
|
|
@@ -96,7 +97,7 @@ class TestLargeOnnxReferenceEvaluator(unittest.TestCase):
|
|
|
96
97
|
],
|
|
97
98
|
dtype=np.float32,
|
|
98
99
|
)
|
|
99
|
-
npt.assert_allclose(expected, got[0])
|
|
100
|
+
npt.assert_allclose(expected, got[0]) # type: ignore[index]
|
|
100
101
|
|
|
101
102
|
def test_large_onnx_no_large_initializer(self):
|
|
102
103
|
model_proto = _linear_regression()
|
onnx/test/numpy_helper_test.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
|
import unittest
|
|
6
7
|
from typing import Any
|
|
@@ -9,6 +10,7 @@ import numpy as np
|
|
|
9
10
|
import parameterized
|
|
10
11
|
|
|
11
12
|
import onnx
|
|
13
|
+
import onnx.reference
|
|
12
14
|
from onnx import helper, numpy_helper
|
|
13
15
|
|
|
14
16
|
|
|
@@ -596,6 +598,59 @@ class TestNumpyHelper(unittest.TestCase):
|
|
|
596
598
|
# Differing value types should raise a TypeError
|
|
597
599
|
numpy_helper.from_dict({0: np.array(1), 1: np.array(0.9)})
|
|
598
600
|
|
|
601
|
+
def _to_array_from_array(self, value: int, check_dtype: bool = True):
|
|
602
|
+
onnx_model = helper.make_model(
|
|
603
|
+
helper.make_graph(
|
|
604
|
+
[helper.make_node("Cast", ["X"], ["Y"], to=value)],
|
|
605
|
+
"test",
|
|
606
|
+
[helper.make_tensor_value_info("X", onnx.TensorProto.FLOAT, [4])],
|
|
607
|
+
[helper.make_tensor_value_info("Y", value, [4])],
|
|
608
|
+
)
|
|
609
|
+
)
|
|
610
|
+
ref = onnx.reference.ReferenceEvaluator(onnx_model)
|
|
611
|
+
start = ref.run(None, {"X": np.array([0, 1, -2, 3], dtype=np.float32)})
|
|
612
|
+
tp = numpy_helper.from_array(start[0], name="check")
|
|
613
|
+
self.assertEqual(tp.data_type, value)
|
|
614
|
+
back = numpy_helper.to_array(tp)
|
|
615
|
+
self.assertEqual(start[0].shape, back.shape)
|
|
616
|
+
if check_dtype:
|
|
617
|
+
self.assertEqual(start[0].dtype, back.dtype)
|
|
618
|
+
again = numpy_helper.from_array(back, name="check")
|
|
619
|
+
self.assertEqual(tp.data_type, again.data_type)
|
|
620
|
+
self.assertEqual(tp.name, again.name)
|
|
621
|
+
self.assertEqual(len(tp.raw_data), len(again.raw_data))
|
|
622
|
+
self.assertEqual(list(tp.raw_data), list(again.raw_data))
|
|
623
|
+
self.assertEqual(tp.raw_data, again.raw_data)
|
|
624
|
+
self.assertEqual(tuple(tp.dims), tuple(again.dims))
|
|
625
|
+
self.assertEqual(tp.SerializeToString(), again.SerializeToString())
|
|
626
|
+
self.assertEqual(tp.data_type, helper.np_dtype_to_tensor_dtype(back.dtype))
|
|
627
|
+
|
|
628
|
+
@parameterized.parameterized.expand([(att,) for att in dir(onnx.TensorProto)])
|
|
629
|
+
def test_to_array_from_array(self, att):
|
|
630
|
+
if att in {
|
|
631
|
+
"INT4",
|
|
632
|
+
"UINT4",
|
|
633
|
+
"STRING",
|
|
634
|
+
"UNDEFINED",
|
|
635
|
+
"DEFAULT",
|
|
636
|
+
"NAME_FIELD_NUMBER",
|
|
637
|
+
}:
|
|
638
|
+
return
|
|
639
|
+
if att[0] < "A" or att[0] > "Z":
|
|
640
|
+
return
|
|
641
|
+
value = getattr(onnx.TensorProto, att)
|
|
642
|
+
if not isinstance(value, int):
|
|
643
|
+
return
|
|
644
|
+
|
|
645
|
+
self._to_array_from_array(value)
|
|
646
|
+
|
|
647
|
+
def test_to_array_from_array_subtype(self):
|
|
648
|
+
self._to_array_from_array(onnx.TensorProto.INT4)
|
|
649
|
+
self._to_array_from_array(onnx.TensorProto.UINT4)
|
|
650
|
+
|
|
651
|
+
def test_to_array_from_array_string(self):
|
|
652
|
+
self._to_array_from_array(onnx.TensorProto.STRING, False)
|
|
653
|
+
|
|
599
654
|
|
|
600
655
|
if __name__ == "__main__":
|
|
601
|
-
unittest.main()
|
|
656
|
+
unittest.main(verbosity=2)
|
onnx/test/parser_test.py
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# Copyright (c) ONNX Project Contributors
|
|
2
2
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
4
6
|
import unittest
|
|
5
7
|
|
|
6
8
|
from parameterized import parameterized
|
|
7
9
|
|
|
8
10
|
import onnx
|
|
9
|
-
from onnx import GraphProto, OperatorSetIdProto, checker
|
|
11
|
+
from onnx import GraphProto, OperatorSetIdProto, TensorProto, checker
|
|
10
12
|
|
|
11
13
|
|
|
12
14
|
class TestBasicFunctions(unittest.TestCase):
|
|
@@ -266,6 +268,50 @@ class TestBasicFunctions(unittest.TestCase):
|
|
|
266
268
|
str(model.graph.node[0].attribute[0].f), str(float(test_literal))
|
|
267
269
|
)
|
|
268
270
|
|
|
271
|
+
@parameterized.expand(
|
|
272
|
+
[
|
|
273
|
+
("bfloat16", TensorProto.BFLOAT16),
|
|
274
|
+
("bool", TensorProto.BOOL),
|
|
275
|
+
("complex64", TensorProto.COMPLEX64),
|
|
276
|
+
("complex128", TensorProto.COMPLEX128),
|
|
277
|
+
("double", TensorProto.DOUBLE),
|
|
278
|
+
("float16", TensorProto.FLOAT16),
|
|
279
|
+
("float", TensorProto.FLOAT),
|
|
280
|
+
("float8e4m3fn", TensorProto.FLOAT8E4M3FN),
|
|
281
|
+
("float8e4m3fnuz", TensorProto.FLOAT8E4M3FNUZ),
|
|
282
|
+
("float8e5m2", TensorProto.FLOAT8E5M2),
|
|
283
|
+
("float8e5m2fnuz", TensorProto.FLOAT8E5M2FNUZ),
|
|
284
|
+
("int4", TensorProto.INT4),
|
|
285
|
+
("int8", TensorProto.INT8),
|
|
286
|
+
("int16", TensorProto.INT16),
|
|
287
|
+
("int32", TensorProto.INT32),
|
|
288
|
+
("int64", TensorProto.INT64),
|
|
289
|
+
("string", TensorProto.STRING),
|
|
290
|
+
("uint4", TensorProto.UINT4),
|
|
291
|
+
("uint8", TensorProto.UINT8),
|
|
292
|
+
("uint16", TensorProto.UINT16),
|
|
293
|
+
("uint32", TensorProto.UINT32),
|
|
294
|
+
("uint64", TensorProto.UINT64),
|
|
295
|
+
]
|
|
296
|
+
)
|
|
297
|
+
def test_parse_graph_types(self, name, itype) -> None:
|
|
298
|
+
w = '{"0"}' if itype == TensorProto.STRING else "{0}"
|
|
299
|
+
text_graph = f"""
|
|
300
|
+
<
|
|
301
|
+
ir_version: 10,
|
|
302
|
+
opset_import: [ "" : 19]
|
|
303
|
+
>
|
|
304
|
+
agraph (float[N] X) => ({name}[N] C)
|
|
305
|
+
<
|
|
306
|
+
{name}[1] weight = {w}
|
|
307
|
+
>
|
|
308
|
+
{{
|
|
309
|
+
C = Cast<to={itype}>(X)
|
|
310
|
+
}}
|
|
311
|
+
"""
|
|
312
|
+
graph = onnx.parser.parse_model(text_graph)
|
|
313
|
+
self.assertEqual(len(graph.graph.node), 1)
|
|
314
|
+
|
|
269
315
|
|
|
270
316
|
if __name__ == "__main__":
|
|
271
|
-
unittest.main()
|
|
317
|
+
unittest.main(verbosity=2)
|
onnx/test/printer_test.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
# type: ignore
|
|
5
|
-
|
|
5
|
+
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
import itertools
|
|
8
8
|
import unittest
|
|
@@ -52,10 +52,9 @@ def has_onnxruntime():
|
|
|
52
52
|
import onnxruntime
|
|
53
53
|
|
|
54
54
|
del onnxruntime
|
|
55
|
-
|
|
56
|
-
return True
|
|
57
55
|
except ImportError:
|
|
58
56
|
return False
|
|
57
|
+
return True
|
|
59
58
|
|
|
60
59
|
|
|
61
60
|
def skip_if_no_onnxruntime(fn):
|