onnx 1.16.1__cp310-cp310-win32.whl → 1.17.0__cp310-cp310-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.cp310-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
|
@@ -1,13 +1,78 @@
|
|
|
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 numpy as np
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
try:
|
|
9
|
+
import ml_dtypes
|
|
10
|
+
except ImportError:
|
|
11
|
+
ml_dtypes = None # type: ignore[assignment]
|
|
12
|
+
|
|
13
|
+
from onnx._custom_element_types import (
|
|
14
|
+
bfloat16,
|
|
15
|
+
float8e4m3fn,
|
|
16
|
+
float8e4m3fnuz,
|
|
17
|
+
float8e5m2,
|
|
18
|
+
float8e5m2fnuz,
|
|
19
|
+
int4,
|
|
20
|
+
uint4,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
_supported_types = [
|
|
24
|
+
(bfloat16, "bfloat16", "bfloat16"),
|
|
25
|
+
(float8e4m3fn, "e4m3fn", "float8_e4m3fn"),
|
|
26
|
+
(float8e4m3fnuz, "e4m3fnuz", "float8_e4m3fnuz"),
|
|
27
|
+
(float8e5m2, "e5m2", "float8_e5m2"),
|
|
28
|
+
(float8e5m2fnuz, "e5m2fnuz", "float8_e5m2fnuz"),
|
|
29
|
+
(int4, "int4", "int4"),
|
|
30
|
+
(uint4, "uint4", "uint4"),
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def convert_from_ml_dtypes(array: np.ndarray) -> np.ndarray:
|
|
35
|
+
"""Detects the type and changes into one of the ONNX
|
|
36
|
+
defined custom types when ``ml_dtypes`` is installed.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
array: Numpy array with a dtype from ml_dtypes.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
numpy array
|
|
43
|
+
"""
|
|
44
|
+
if not ml_dtypes:
|
|
45
|
+
return array
|
|
46
|
+
for dtype, _, ml_name in _supported_types:
|
|
47
|
+
if array.dtype == getattr(ml_dtypes, ml_name):
|
|
48
|
+
return array.view(dtype=dtype)
|
|
49
|
+
return array
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def convert_to_ml_dtypes(array: np.ndarray) -> np.ndarray:
|
|
53
|
+
"""Detects the type and changes into one of the type
|
|
54
|
+
defined in ``ml_dtypes`` if installed.
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
array: array
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
numpy Numpy array with a dtype from ml_dtypes.
|
|
61
|
+
"""
|
|
62
|
+
new_dt = None
|
|
63
|
+
|
|
64
|
+
for dtype, name, ml_name in _supported_types:
|
|
65
|
+
if array.dtype == dtype and array.dtype.descr[0][0] == name:
|
|
66
|
+
assert ml_dtypes, (
|
|
67
|
+
f"ml_dtypes is not installed and the tensor cannot "
|
|
68
|
+
f"be converted into ml_dtypes.{array.dtype.descr[0][0]}"
|
|
69
|
+
)
|
|
70
|
+
new_dt = getattr(ml_dtypes, ml_name)
|
|
71
|
+
break
|
|
72
|
+
|
|
73
|
+
if new_dt:
|
|
74
|
+
# int4, uint4, the representation uses 1 byte per element,
|
|
75
|
+
# only onnx storage uses 1 byte for two elements
|
|
76
|
+
return array.view(dtype=new_dt)
|
|
77
|
+
|
|
78
|
+
return array
|
onnx/reference/op_run.py
CHANGED
|
@@ -9,11 +9,7 @@ from typing import Any, ClassVar, Iterable
|
|
|
9
9
|
import numpy as np
|
|
10
10
|
|
|
11
11
|
from onnx import TensorProto
|
|
12
|
-
from onnx.
|
|
13
|
-
from onnx.helper import make_node, make_tensor_type_proto, np_dtype_to_tensor_dtype
|
|
14
|
-
from onnx.numpy_helper import to_array, unpack_int4
|
|
15
|
-
from onnx.onnx_pb import AttributeProto, GraphProto, NodeProto, TypeProto
|
|
16
|
-
from onnx.reference.custom_element_types import (
|
|
12
|
+
from onnx._custom_element_types import (
|
|
17
13
|
bfloat16,
|
|
18
14
|
float8e4m3fn,
|
|
19
15
|
float8e4m3fnuz,
|
|
@@ -22,6 +18,10 @@ from onnx.reference.custom_element_types import (
|
|
|
22
18
|
int4,
|
|
23
19
|
uint4,
|
|
24
20
|
)
|
|
21
|
+
from onnx.defs import get_all_schemas_with_history, get_schema, onnx_opset_version
|
|
22
|
+
from onnx.helper import make_node, make_tensor_type_proto, np_dtype_to_tensor_dtype
|
|
23
|
+
from onnx.numpy_helper import to_array
|
|
24
|
+
from onnx.onnx_pb import AttributeProto, GraphProto, NodeProto, TypeProto
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def _split_class_name(name): # type: ignore
|
|
@@ -121,55 +121,7 @@ def to_sparse_tensor(att: AttributeProto) -> SparseTensor:
|
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
def to_array_extended(tensor: TensorProto) -> np.ndarray:
|
|
124
|
-
"""
|
|
125
|
-
float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, uint4, int4.
|
|
126
|
-
"""
|
|
127
|
-
elem_type = tensor.data_type
|
|
128
|
-
if elem_type == TensorProto.BFLOAT16:
|
|
129
|
-
data = tensor.int32_data
|
|
130
|
-
shape = tuple(tensor.dims)
|
|
131
|
-
y = np.empty(shape, dtype=bfloat16).ravel()
|
|
132
|
-
for i, d in enumerate(data):
|
|
133
|
-
y[i] = d
|
|
134
|
-
return y.reshape(shape)
|
|
135
|
-
|
|
136
|
-
if elem_type in (
|
|
137
|
-
TensorProto.FLOAT8E4M3FN,
|
|
138
|
-
TensorProto.FLOAT8E4M3FNUZ,
|
|
139
|
-
TensorProto.FLOAT8E5M2,
|
|
140
|
-
TensorProto.FLOAT8E5M2FNUZ,
|
|
141
|
-
):
|
|
142
|
-
m = {
|
|
143
|
-
TensorProto.FLOAT8E4M3FN: float8e4m3fn,
|
|
144
|
-
TensorProto.FLOAT8E4M3FNUZ: float8e4m3fnuz,
|
|
145
|
-
TensorProto.FLOAT8E5M2: float8e5m2,
|
|
146
|
-
TensorProto.FLOAT8E5M2FNUZ: float8e5m2fnuz,
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if tensor.HasField("raw_data"):
|
|
150
|
-
data = tensor.raw_data # type: ignore[assignment]
|
|
151
|
-
else:
|
|
152
|
-
data = tensor.int32_data
|
|
153
|
-
shape = tuple(tensor.dims)
|
|
154
|
-
y = np.empty(shape, dtype=m[elem_type]).ravel() # type: ignore[index]
|
|
155
|
-
for i, d in enumerate(data):
|
|
156
|
-
y[i] = d
|
|
157
|
-
return y.reshape(shape)
|
|
158
|
-
if elem_type in (TensorProto.UINT4, TensorProto.INT4):
|
|
159
|
-
if tensor.HasField("raw_data"):
|
|
160
|
-
data = tensor.raw_data # type: ignore[assignment]
|
|
161
|
-
else:
|
|
162
|
-
data = tensor.int32_data
|
|
163
|
-
shape = tuple(tensor.dims)
|
|
164
|
-
m = {TensorProto.INT4: int4, TensorProto.UINT4: uint4}
|
|
165
|
-
dtype = m[elem_type] # type: ignore[index]
|
|
166
|
-
signed = elem_type == TensorProto.INT4
|
|
167
|
-
y = np.empty(len(data), dtype=dtype).ravel()
|
|
168
|
-
for i, d in enumerate(data):
|
|
169
|
-
y[i] = d
|
|
170
|
-
|
|
171
|
-
unpacked_data = unpack_int4(y, dims=shape, signed=signed)
|
|
172
|
-
return unpacked_data.astype(dtype)
|
|
124
|
+
"""Alias for :func:`to_array`."""
|
|
173
125
|
return to_array(tensor)
|
|
174
126
|
|
|
175
127
|
|
|
@@ -652,13 +604,16 @@ class OpRunExpand(OpRun):
|
|
|
652
604
|
"""Class any operator to avoid must inherit from."""
|
|
653
605
|
|
|
654
606
|
def __init__(
|
|
655
|
-
self,
|
|
607
|
+
self,
|
|
608
|
+
onnx_node: NodeProto, # noqa: ARG002
|
|
609
|
+
run_params: dict[str, Any], # noqa: ARG002
|
|
610
|
+
impl: Any = None, # noqa: ARG002
|
|
656
611
|
):
|
|
657
612
|
raise RuntimeError(
|
|
658
613
|
f"The reference implementation must not use this node ({type(self)})."
|
|
659
614
|
)
|
|
660
615
|
|
|
661
|
-
def _run(self, *inputs, **kwargs):
|
|
616
|
+
def _run(self, *inputs, **kwargs): # noqa: ARG002
|
|
662
617
|
raise RuntimeError(
|
|
663
618
|
f"The reference implementation must not use this node ({type(self)})."
|
|
664
619
|
)
|
|
@@ -735,7 +690,7 @@ class OpFunctionContextDependant(OpFunction):
|
|
|
735
690
|
for t in inputs:
|
|
736
691
|
try:
|
|
737
692
|
ttype = np_dtype_to_tensor_dtype(t.dtype)
|
|
738
|
-
except KeyError
|
|
693
|
+
except KeyError:
|
|
739
694
|
if t.dtype == float8e4m3fn:
|
|
740
695
|
ttype = TensorProto.FLOAT8E4M3FN # type: ignore[attr-defined]
|
|
741
696
|
elif t.dtype == float8e4m3fnuz:
|
|
@@ -751,7 +706,7 @@ class OpFunctionContextDependant(OpFunction):
|
|
|
751
706
|
elif t.dtype == int4:
|
|
752
707
|
ttype = TensorProto.INT4 # type: ignore[attr-defined]
|
|
753
708
|
else:
|
|
754
|
-
raise
|
|
709
|
+
raise
|
|
755
710
|
types.append(make_tensor_type_proto(ttype, t.shape))
|
|
756
711
|
cl = self.parent._load_impl(self.onnx_node, types)
|
|
757
712
|
inst = cl(self.onnx_node, self.run_params)
|
onnx/reference/ops/__init__.py
CHANGED
onnx/reference/ops/_helpers.py
CHANGED
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
# Copyright (c) ONNX Project Contributors
|
|
4
4
|
#
|
|
5
5
|
# SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
from __future__ import annotations
|
|
6
7
|
|
|
7
|
-
from typing import Any
|
|
8
|
+
from typing import Any
|
|
8
9
|
|
|
9
10
|
from onnx.reference.op_run import OpRun, _split_class_name
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
def build_registered_operators_any_domain(
|
|
13
|
-
module_context:
|
|
14
|
-
) ->
|
|
15
|
-
reg_ops:
|
|
14
|
+
module_context: dict[str, Any],
|
|
15
|
+
) -> dict[str, dict[int | None, OpRun]]:
|
|
16
|
+
reg_ops: dict[str, dict[int | None, OpRun]] = {}
|
|
16
17
|
for class_name, class_type in module_context.items():
|
|
17
18
|
if class_name.startswith("_") or class_name in {
|
|
18
19
|
"Any",
|
|
@@ -20,6 +21,7 @@ def build_registered_operators_any_domain(
|
|
|
20
21
|
"List",
|
|
21
22
|
"TOptional",
|
|
22
23
|
"Union",
|
|
24
|
+
"annotations",
|
|
23
25
|
"cl",
|
|
24
26
|
"class_name",
|
|
25
27
|
"get_schema",
|
onnx/reference/ops/_op.py
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
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
|
-
from typing import Any
|
|
6
|
+
from typing import Any
|
|
6
7
|
|
|
7
8
|
import numpy as np
|
|
8
9
|
|
|
9
10
|
from onnx.onnx_pb import NodeProto
|
|
11
|
+
from onnx.reference.custom_element_types import (
|
|
12
|
+
convert_from_ml_dtypes,
|
|
13
|
+
convert_to_ml_dtypes,
|
|
14
|
+
)
|
|
10
15
|
from onnx.reference.op_run import OpRun, RuntimeTypeError
|
|
11
16
|
|
|
12
17
|
|
|
@@ -22,6 +27,7 @@ class OpRunUnary(OpRun):
|
|
|
22
27
|
Supports only unary operators.
|
|
23
28
|
"""
|
|
24
29
|
self._log("-- begin %s.run(1 input)", self.__class__.__name__)
|
|
30
|
+
x = convert_to_ml_dtypes(x)
|
|
25
31
|
try:
|
|
26
32
|
res = self._run(x)
|
|
27
33
|
except TypeError as e:
|
|
@@ -29,6 +35,7 @@ class OpRunUnary(OpRun):
|
|
|
29
35
|
f"Issues with types {', '.join(str(type(_)) for _ in [x])} "
|
|
30
36
|
f"(unary operator {self.__class__.__name__!r})."
|
|
31
37
|
) from e
|
|
38
|
+
res = (convert_from_ml_dtypes(res[0]),)
|
|
32
39
|
self._log("-- done %s.run -> %d outputs", self.__class__.__name__, len(res))
|
|
33
40
|
return self._check_and_fix_outputs(res)
|
|
34
41
|
|
|
@@ -78,6 +85,8 @@ class OpRunBinary(OpRun):
|
|
|
78
85
|
f"(operator '{self.__class__.__name__!r}', "
|
|
79
86
|
f"shapes {x.shape}, {y.shape})."
|
|
80
87
|
)
|
|
88
|
+
x = convert_to_ml_dtypes(x)
|
|
89
|
+
y = convert_to_ml_dtypes(y)
|
|
81
90
|
try:
|
|
82
91
|
res = self._run(x, y)
|
|
83
92
|
except (TypeError, ValueError) as e:
|
|
@@ -85,6 +94,7 @@ class OpRunBinary(OpRun):
|
|
|
85
94
|
f"Issues with types {', '.join(str(type(_)) for _ in [x, y])} "
|
|
86
95
|
f"(binary operator {self.__class__.__name__!r})."
|
|
87
96
|
) from e
|
|
97
|
+
res = (convert_from_ml_dtypes(res[0]),)
|
|
88
98
|
self._log("-- done %s.run -> %d outputs", self.__class__.__name__, len(res))
|
|
89
99
|
return self._check_and_fix_outputs(res)
|
|
90
100
|
|
|
@@ -92,8 +102,6 @@ class OpRunBinary(OpRun):
|
|
|
92
102
|
class OpRunBinaryComparison(OpRunBinary):
|
|
93
103
|
"""Ancestor to all binary operators in this subfolder comparing tensors."""
|
|
94
104
|
|
|
95
|
-
pass
|
|
96
|
-
|
|
97
105
|
|
|
98
106
|
class OpRunBinaryNum(OpRunBinary):
|
|
99
107
|
"""Ancestor to all binary operators in this subfolder.
|
|
@@ -119,13 +127,16 @@ class OpRunBinaryNumpy(OpRunBinaryNum):
|
|
|
119
127
|
"""
|
|
120
128
|
|
|
121
129
|
def __init__(
|
|
122
|
-
self, numpy_fct: Any, onnx_node: NodeProto, run_params:
|
|
130
|
+
self, numpy_fct: Any, onnx_node: NodeProto, run_params: dict[str, Any]
|
|
123
131
|
):
|
|
124
132
|
OpRunBinaryNum.__init__(self, onnx_node, run_params)
|
|
125
133
|
self.numpy_fct = numpy_fct
|
|
126
134
|
|
|
127
135
|
def _run(self, a, b): # type: ignore
|
|
136
|
+
a = convert_to_ml_dtypes(a)
|
|
137
|
+
b = convert_to_ml_dtypes(b)
|
|
128
138
|
res = (self.numpy_fct(a, b),)
|
|
139
|
+
res = (convert_from_ml_dtypes(res[0]),)
|
|
129
140
|
return self._check_and_fix_outputs(res)
|
|
130
141
|
|
|
131
142
|
|
|
@@ -134,7 +145,7 @@ class OpRunReduceNumpy(OpRun): # type: ignore
|
|
|
134
145
|
It must have a parameter *axes*.
|
|
135
146
|
"""
|
|
136
147
|
|
|
137
|
-
def __init__(self, onnx_node: NodeProto, run_params:
|
|
148
|
+
def __init__(self, onnx_node: NodeProto, run_params: dict[str, Any]):
|
|
138
149
|
OpRun.__init__(self, onnx_node, run_params)
|
|
139
150
|
if hasattr(self, "axes"):
|
|
140
151
|
if isinstance(self.axes, np.ndarray): # type: ignore
|
|
@@ -1,10 +1,9 @@
|
|
|
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
|
-
from typing import Optional, Tuple
|
|
8
7
|
|
|
9
8
|
import numpy as np
|
|
10
9
|
|
|
@@ -14,11 +13,11 @@ from onnx.reference.ops._op_common_indices import _get_index, _get_indices
|
|
|
14
13
|
|
|
15
14
|
def _get_pad_shape(
|
|
16
15
|
auto_pad: str,
|
|
17
|
-
input_spatial_shape:
|
|
18
|
-
kernel_spatial_shape:
|
|
19
|
-
strides_spatial:
|
|
20
|
-
output_spatial_shape:
|
|
21
|
-
) ->
|
|
16
|
+
input_spatial_shape: tuple[int],
|
|
17
|
+
kernel_spatial_shape: tuple[int],
|
|
18
|
+
strides_spatial: tuple[int],
|
|
19
|
+
output_spatial_shape: tuple[int],
|
|
20
|
+
) -> tuple[int]:
|
|
22
21
|
pad_shape = [0] * len(input_spatial_shape)
|
|
23
22
|
if auto_pad in ("SAME_UPPER", "SAME_LOWER"):
|
|
24
23
|
for i in range(len(input_spatial_shape)):
|
|
@@ -41,10 +40,10 @@ def _get_pad_shape(
|
|
|
41
40
|
|
|
42
41
|
def _get_output_shape_no_ceil(
|
|
43
42
|
auto_pad: str,
|
|
44
|
-
input_spatial_shape:
|
|
45
|
-
kernel_spatial_shape:
|
|
46
|
-
strides_spatial:
|
|
47
|
-
) ->
|
|
43
|
+
input_spatial_shape: tuple[int],
|
|
44
|
+
kernel_spatial_shape: tuple[int],
|
|
45
|
+
strides_spatial: tuple[int],
|
|
46
|
+
) -> tuple[int]:
|
|
48
47
|
out_shape = [0] * len(input_spatial_shape)
|
|
49
48
|
if auto_pad in ("SAME_UPPER", "SAME_LOWER"):
|
|
50
49
|
for i in range(len(input_spatial_shape)):
|
|
@@ -64,12 +63,12 @@ def _get_output_shape_no_ceil(
|
|
|
64
63
|
|
|
65
64
|
def _get_output_shape(
|
|
66
65
|
auto_pad: str,
|
|
67
|
-
input_spatial_shape:
|
|
68
|
-
kernel_spatial_shape:
|
|
69
|
-
strides_spatial:
|
|
70
|
-
pad_shape:
|
|
71
|
-
ceil_mode:
|
|
72
|
-
) ->
|
|
66
|
+
input_spatial_shape: tuple[int],
|
|
67
|
+
kernel_spatial_shape: tuple[int],
|
|
68
|
+
strides_spatial: tuple[int],
|
|
69
|
+
pad_shape: tuple[int] | None = None,
|
|
70
|
+
ceil_mode: int | None = 0,
|
|
71
|
+
) -> tuple[int]:
|
|
73
72
|
if not ceil_mode:
|
|
74
73
|
out_shape = _get_output_shape_no_ceil(
|
|
75
74
|
auto_pad, input_spatial_shape, kernel_spatial_shape, strides_spatial
|
|
@@ -119,16 +118,16 @@ def _get_output_shape(
|
|
|
119
118
|
|
|
120
119
|
def _pool(
|
|
121
120
|
padded: np.ndarray,
|
|
122
|
-
x_shape:
|
|
123
|
-
kernel_shape:
|
|
124
|
-
strides_shape:
|
|
125
|
-
out_shape:
|
|
126
|
-
pad_shape:
|
|
121
|
+
x_shape: tuple[int],
|
|
122
|
+
kernel_shape: tuple[int],
|
|
123
|
+
strides_shape: tuple[int],
|
|
124
|
+
out_shape: tuple[int],
|
|
125
|
+
pad_shape: tuple[int],
|
|
127
126
|
pooling_type: str,
|
|
128
|
-
count_include_pad:
|
|
129
|
-
ceil_mode:
|
|
127
|
+
count_include_pad: int | None = 0,
|
|
128
|
+
ceil_mode: int | None = 0,
|
|
130
129
|
indices: bool = False,
|
|
131
|
-
pads:
|
|
130
|
+
pads: np.ndarray | None = None,
|
|
132
131
|
) -> np.ndarray:
|
|
133
132
|
if pooling_type == "AVG":
|
|
134
133
|
fpool = np.average
|
|
@@ -172,7 +171,7 @@ def _pool(
|
|
|
172
171
|
for i in listi2:
|
|
173
172
|
try:
|
|
174
173
|
values.append(window[i])
|
|
175
|
-
except IndexError:
|
|
174
|
+
except IndexError: # noqa: PERF203
|
|
176
175
|
continue
|
|
177
176
|
window_vals = np.array(values)
|
|
178
177
|
|
|
@@ -210,7 +209,7 @@ class CommonPool(OpRun):
|
|
|
210
209
|
dilations=None,
|
|
211
210
|
kernel_shape=None,
|
|
212
211
|
pads=None,
|
|
213
|
-
storage_order=None,
|
|
212
|
+
storage_order=None, # noqa: ARG002
|
|
214
213
|
strides=None,
|
|
215
214
|
):
|
|
216
215
|
if pooling_type == "MAX" and dilations is None:
|
|
@@ -246,7 +245,12 @@ class CommonPool(OpRun):
|
|
|
246
245
|
if auto_pad in ("SAME_LOWER", "SAME_UPPER"):
|
|
247
246
|
const = np.nan if count_include_pad == 0 else 0
|
|
248
247
|
out_shape = _get_output_shape(
|
|
249
|
-
auto_pad,
|
|
248
|
+
auto_pad,
|
|
249
|
+
x_shape,
|
|
250
|
+
kernel_shape,
|
|
251
|
+
strides,
|
|
252
|
+
pad_shape,
|
|
253
|
+
ceil_mode, # type: ignore
|
|
250
254
|
)
|
|
251
255
|
pad_shape = _get_pad_shape( # type: ignore
|
|
252
256
|
auto_pad, x_shape, kernel_shape, strides, out_shape
|
|
@@ -269,7 +273,12 @@ class CommonPool(OpRun):
|
|
|
269
273
|
)
|
|
270
274
|
else:
|
|
271
275
|
out_shape = _get_output_shape(
|
|
272
|
-
auto_pad,
|
|
276
|
+
auto_pad,
|
|
277
|
+
x_shape,
|
|
278
|
+
kernel_shape,
|
|
279
|
+
strides,
|
|
280
|
+
pad_shape,
|
|
281
|
+
ceil_mode, # type: ignore
|
|
273
282
|
)
|
|
274
283
|
|
|
275
284
|
n_dims = len(pads) // 2
|
|
@@ -1,7 +1,7 @@
|
|
|
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 numpy as np
|
|
7
7
|
|
|
@@ -21,6 +21,6 @@ class _CommonWindow(OpRun):
|
|
|
21
21
|
return ni, N_1
|
|
22
22
|
|
|
23
23
|
@staticmethod
|
|
24
|
-
def _end(size, res, output_datatype): # type: ignore
|
|
24
|
+
def _end(size, res, output_datatype): # type: ignore # noqa: ARG004
|
|
25
25
|
dtype = tensor_dtype_to_np_dtype(output_datatype)
|
|
26
26
|
return (res.astype(dtype),)
|
onnx/reference/ops/_op_list.py
CHANGED
|
@@ -10,6 +10,9 @@ with `_`, it means the implementation is valid for every opset.
|
|
|
10
10
|
The operator may have been updated to support more types but that
|
|
11
11
|
did not change the implementation.
|
|
12
12
|
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
13
16
|
import textwrap
|
|
14
17
|
from typing import Any, Dict, List
|
|
15
18
|
from typing import Optional as TOptional
|
|
@@ -240,19 +243,19 @@ from onnx.reference.ops.op_where import Where
|
|
|
240
243
|
from onnx.reference.ops.op_xor import Xor
|
|
241
244
|
|
|
242
245
|
|
|
243
|
-
def _build_registered_operators() ->
|
|
246
|
+
def _build_registered_operators() -> dict[str, dict[int | None, OpRun]]:
|
|
244
247
|
return build_registered_operators_any_domain(globals().copy())
|
|
245
248
|
|
|
246
249
|
|
|
247
250
|
def load_op(
|
|
248
251
|
domain: str,
|
|
249
252
|
op_type: str,
|
|
250
|
-
version:
|
|
253
|
+
version: None | int = None,
|
|
251
254
|
custom: Any = None,
|
|
252
|
-
node:
|
|
253
|
-
input_types:
|
|
255
|
+
node: None | NodeProto = None,
|
|
256
|
+
input_types: None | list[TypeProto] = None,
|
|
254
257
|
expand: bool = False,
|
|
255
|
-
evaluator_cls:
|
|
258
|
+
evaluator_cls: type | None = None,
|
|
256
259
|
) -> Any:
|
|
257
260
|
"""Loads the implemented for a specified operator.
|
|
258
261
|
|
|
@@ -363,4 +366,4 @@ def load_op(
|
|
|
363
366
|
return cl
|
|
364
367
|
|
|
365
368
|
|
|
366
|
-
_registered_operators:
|
|
369
|
+
_registered_operators: dict[str, dict[int | None, OpRun]] | None = None
|
|
@@ -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
|
from onnx.reference.ops.aionnx_preview_training._op_list import load_op
|
|
6
7
|
from onnx.reference.ops.aionnx_preview_training._op_run_training import OpRunTraining
|
|
@@ -1,7 +1,7 @@
|
|
|
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 textwrap
|
|
7
7
|
from typing import Any, Dict
|
|
@@ -16,16 +16,16 @@ from onnx.reference.ops.aionnx_preview_training.op_adam import Adam
|
|
|
16
16
|
from onnx.reference.ops.aionnx_preview_training.op_momentum import Momentum
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
def _build_registered_operators() ->
|
|
19
|
+
def _build_registered_operators() -> dict[str, dict[int | None, OpRunTraining]]:
|
|
20
20
|
return build_registered_operators_any_domain(globals().copy()) # type: ignore[return-value]
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def load_op(
|
|
24
24
|
domain: str,
|
|
25
25
|
op_type: str,
|
|
26
|
-
version:
|
|
26
|
+
version: None | int,
|
|
27
27
|
custom: Any = None,
|
|
28
|
-
evaluator_cls:
|
|
28
|
+
evaluator_cls: type | None = None, # noqa: ARG001
|
|
29
29
|
) -> Any:
|
|
30
30
|
"""Loads the implemented for a specified operator.
|
|
31
31
|
|
|
@@ -84,6 +84,4 @@ def load_op(
|
|
|
84
84
|
return cl
|
|
85
85
|
|
|
86
86
|
|
|
87
|
-
_registered_operators:
|
|
88
|
-
Dict[str, Dict[Union[int, None], OpRunTraining]]
|
|
89
|
-
] = None
|
|
87
|
+
_registered_operators: dict[str, dict[int | None, OpRunTraining]] | None = None
|
|
@@ -1,7 +1,7 @@
|
|
|
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 numpy as np
|
|
7
7
|
|
|
@@ -19,7 +19,7 @@ def _apply_adagrad(r, t, x, g, h, norm_coefficient, epsilon, decay_factor): # t
|
|
|
19
19
|
h_sqrt = np.sqrt(h_new) + epsilon
|
|
20
20
|
# Apply ADAGRAD update rule.
|
|
21
21
|
x_new = x - r_ * g_regularized / h_sqrt
|
|
22
|
-
return (x_new, h_new)
|
|
22
|
+
return (x_new.astype(x.dtype), h_new.astype(h.dtype))
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
class Adagrad(OpRunTraining):
|
|
@@ -34,7 +34,7 @@ class Adagrad(OpRunTraining):
|
|
|
34
34
|
n = (len(data) - 2) // 3
|
|
35
35
|
xs = []
|
|
36
36
|
hs = []
|
|
37
|
-
for i in range(
|
|
37
|
+
for i in range(n):
|
|
38
38
|
a, b = self._run1( # type: ignore
|
|
39
39
|
*data[:2],
|
|
40
40
|
data[2 + i],
|
|
@@ -48,8 +48,17 @@ class Adagrad(OpRunTraining):
|
|
|
48
48
|
hs.append(b)
|
|
49
49
|
return tuple(xs + hs)
|
|
50
50
|
|
|
51
|
-
def _run1(
|
|
51
|
+
def _run1(
|
|
52
|
+
self, r, t, x, g, h, decay_factor=None, epsilon=None, norm_coefficient=None
|
|
53
|
+
): # type: ignore
|
|
52
54
|
x_new, h_new = _apply_adagrad(
|
|
53
|
-
r,
|
|
55
|
+
r,
|
|
56
|
+
t,
|
|
57
|
+
x,
|
|
58
|
+
g,
|
|
59
|
+
h,
|
|
60
|
+
norm_coefficient,
|
|
61
|
+
epsilon,
|
|
62
|
+
decay_factor, # type: ignore
|
|
54
63
|
)
|
|
55
64
|
return x_new, h_new
|
|
@@ -1,7 +1,7 @@
|
|
|
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 numpy as np
|
|
7
7
|
|
|
@@ -57,7 +57,7 @@ class Adam(OpRunTraining):
|
|
|
57
57
|
xs = []
|
|
58
58
|
vs = []
|
|
59
59
|
hs = []
|
|
60
|
-
for i in range(
|
|
60
|
+
for i in range(n):
|
|
61
61
|
a, b, c = self._run1( # type: ignore
|
|
62
62
|
*data[:2],
|
|
63
63
|
data[2 + i],
|