onnx 1.16.2__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 +12 -8
- 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 +989 -7
- 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 +111 -0
- onnx/external_data_helper.py +27 -14
- onnx/gen_proto.py +3 -2
- onnx/helper.py +86 -61
- onnx/hub.py +30 -28
- 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 +6 -5
- onnx/tools/replace_constants.py +11 -11
- onnx/tools/update_model_dims.py +7 -6
- onnx/utils.py +41 -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.2.dist-info → onnx-1.17.0.dist-info}/METADATA +9 -12
- {onnx-1.16.2.dist-info → onnx-1.17.0.dist-info}/RECORD +843 -817
- {onnx-1.16.2.dist-info → onnx-1.17.0.dist-info}/WHEEL +1 -1
- {onnx-1.16.2.dist-info → onnx-1.17.0.dist-info}/LICENSE +0 -0
- {onnx-1.16.2.dist-info → onnx-1.17.0.dist-info}/entry_points.txt +0 -0
- {onnx-1.16.2.dist-info → onnx-1.17.0.dist-info}/top_level.txt +0 -0
onnx/gen_proto.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import argparse
|
|
6
7
|
import glob
|
|
@@ -8,7 +9,7 @@ import os
|
|
|
8
9
|
import re
|
|
9
10
|
import subprocess
|
|
10
11
|
from textwrap import dedent
|
|
11
|
-
from typing import Iterable
|
|
12
|
+
from typing import Iterable
|
|
12
13
|
|
|
13
14
|
autogen_header = """\
|
|
14
15
|
//
|
|
@@ -121,7 +122,7 @@ def translate(source: str, proto: int, onnx_ml: bool, package_name: str) -> str:
|
|
|
121
122
|
return "\n".join(lines) # TODO: not Windows friendly
|
|
122
123
|
|
|
123
124
|
|
|
124
|
-
def qualify(f: str, pardir:
|
|
125
|
+
def qualify(f: str, pardir: str | None = None) -> str:
|
|
125
126
|
if pardir is None:
|
|
126
127
|
pardir = os.path.realpath(os.path.dirname(__file__))
|
|
127
128
|
return os.path.join(pardir, f)
|
onnx/helper.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 collections.abc
|
|
6
7
|
import numbers
|
|
@@ -12,7 +13,6 @@ from typing import (
|
|
|
12
13
|
Dict,
|
|
13
14
|
KeysView,
|
|
14
15
|
List,
|
|
15
|
-
Optional,
|
|
16
16
|
Sequence,
|
|
17
17
|
Tuple,
|
|
18
18
|
TypeVar,
|
|
@@ -23,6 +23,7 @@ from typing import (
|
|
|
23
23
|
import google.protobuf.message
|
|
24
24
|
import numpy as np
|
|
25
25
|
|
|
26
|
+
import onnx._custom_element_types as custom_np_types
|
|
26
27
|
from onnx import (
|
|
27
28
|
IR_VERSION,
|
|
28
29
|
AttributeProto,
|
|
@@ -76,6 +77,7 @@ VERSION_TABLE: VersionTableType = [
|
|
|
76
77
|
("1.14.1", 9, 19, 3, 1),
|
|
77
78
|
("1.15.0", 9, 20, 4, 1),
|
|
78
79
|
("1.16.0", 10, 21, 5, 1),
|
|
80
|
+
("1.17.0", 10, 22, 5, 1),
|
|
79
81
|
]
|
|
80
82
|
|
|
81
83
|
VersionMapType = Dict[Tuple[str, int], int]
|
|
@@ -116,7 +118,7 @@ def find_min_ir_version_for(
|
|
|
116
118
|
"""
|
|
117
119
|
default_min_version = 3
|
|
118
120
|
|
|
119
|
-
def find_min(domain:
|
|
121
|
+
def find_min(domain: str | None, version: int) -> int:
|
|
120
122
|
key = (domain or "ai.onnx", version)
|
|
121
123
|
if key in OP_SET_ID_VERSION_MAP:
|
|
122
124
|
return OP_SET_ID_VERSION_MAP[key]
|
|
@@ -133,10 +135,10 @@ def make_node(
|
|
|
133
135
|
op_type: str,
|
|
134
136
|
inputs: Sequence[str],
|
|
135
137
|
outputs: Sequence[str],
|
|
136
|
-
name:
|
|
137
|
-
doc_string:
|
|
138
|
-
domain:
|
|
139
|
-
overload:
|
|
138
|
+
name: str | None = None,
|
|
139
|
+
doc_string: str | None = None,
|
|
140
|
+
domain: str | None = None,
|
|
141
|
+
overload: str | None = None,
|
|
140
142
|
**kwargs: Any,
|
|
141
143
|
) -> NodeProto:
|
|
142
144
|
"""Construct a NodeProto.
|
|
@@ -201,10 +203,10 @@ def make_graph(
|
|
|
201
203
|
name: str,
|
|
202
204
|
inputs: Sequence[ValueInfoProto],
|
|
203
205
|
outputs: Sequence[ValueInfoProto],
|
|
204
|
-
initializer:
|
|
205
|
-
doc_string:
|
|
206
|
-
value_info:
|
|
207
|
-
sparse_initializer:
|
|
206
|
+
initializer: Sequence[TensorProto] | None = None,
|
|
207
|
+
doc_string: str | None = None,
|
|
208
|
+
value_info: Sequence[ValueInfoProto] | None = None,
|
|
209
|
+
sparse_initializer: Sequence[SparseTensorProto] | None = None,
|
|
208
210
|
) -> GraphProto:
|
|
209
211
|
"""Construct a GraphProto
|
|
210
212
|
|
|
@@ -261,11 +263,11 @@ def make_function(
|
|
|
261
263
|
outputs: Sequence[str],
|
|
262
264
|
nodes: Sequence[NodeProto],
|
|
263
265
|
opset_imports: Sequence[OperatorSetIdProto],
|
|
264
|
-
attributes:
|
|
265
|
-
attribute_protos:
|
|
266
|
-
doc_string:
|
|
267
|
-
overload:
|
|
268
|
-
value_info:
|
|
266
|
+
attributes: Sequence[str] | None = None,
|
|
267
|
+
attribute_protos: Sequence[AttributeProto] | None = None,
|
|
268
|
+
doc_string: str | None = None,
|
|
269
|
+
overload: str | None = None,
|
|
270
|
+
value_info: Sequence[ValueInfoProto] | None = None,
|
|
269
271
|
) -> FunctionProto:
|
|
270
272
|
if attributes is None:
|
|
271
273
|
attributes = []
|
|
@@ -305,7 +307,7 @@ def make_model(graph: GraphProto, **kwargs: Any) -> ModelProto:
|
|
|
305
307
|
model.ir_version = IR_VERSION
|
|
306
308
|
model.graph.CopyFrom(graph)
|
|
307
309
|
|
|
308
|
-
opset_imports:
|
|
310
|
+
opset_imports: Sequence[OperatorSetIdProto] | None = None
|
|
309
311
|
opset_imports = kwargs.pop("opset_imports", None) # type: ignore
|
|
310
312
|
if opset_imports is not None:
|
|
311
313
|
model.opset_import.extend(opset_imports)
|
|
@@ -314,7 +316,7 @@ def make_model(graph: GraphProto, **kwargs: Any) -> ModelProto:
|
|
|
314
316
|
imp = model.opset_import.add()
|
|
315
317
|
imp.version = defs.onnx_opset_version()
|
|
316
318
|
|
|
317
|
-
functions:
|
|
319
|
+
functions: Sequence[FunctionProto] | None = None
|
|
318
320
|
functions = kwargs.pop("functions", None) # type: ignore
|
|
319
321
|
if functions is not None:
|
|
320
322
|
model.functions.extend(functions)
|
|
@@ -337,10 +339,15 @@ def make_model_gen_version(graph: GraphProto, **kwargs: Any) -> ModelProto:
|
|
|
337
339
|
|
|
338
340
|
|
|
339
341
|
def set_metadata_props(
|
|
340
|
-
proto:
|
|
341
|
-
ModelProto
|
|
342
|
-
|
|
343
|
-
|
|
342
|
+
proto: (
|
|
343
|
+
ModelProto
|
|
344
|
+
| GraphProto
|
|
345
|
+
| FunctionProto
|
|
346
|
+
| NodeProto
|
|
347
|
+
| TensorProto
|
|
348
|
+
| ValueInfoProto
|
|
349
|
+
),
|
|
350
|
+
dict_value: dict[str, str],
|
|
344
351
|
) -> None:
|
|
345
352
|
del proto.metadata_props[:]
|
|
346
353
|
for k, v in dict_value.items():
|
|
@@ -349,7 +356,7 @@ def set_metadata_props(
|
|
|
349
356
|
entry.value = v
|
|
350
357
|
|
|
351
358
|
|
|
352
|
-
def set_model_props(model: ModelProto, dict_value:
|
|
359
|
+
def set_model_props(model: ModelProto, dict_value: dict[str, str]) -> None:
|
|
353
360
|
set_metadata_props(model, dict_value)
|
|
354
361
|
|
|
355
362
|
|
|
@@ -639,9 +646,7 @@ def float32_to_float8e5m2( # noqa: PLR0911
|
|
|
639
646
|
raise NotImplementedError("fn and uz must be both False or True.")
|
|
640
647
|
|
|
641
648
|
|
|
642
|
-
def pack_float32_to_4bit(
|
|
643
|
-
array: Union[np.ndarray, Sequence], signed: bool
|
|
644
|
-
) -> np.ndarray:
|
|
649
|
+
def pack_float32_to_4bit(array: np.ndarray | Sequence, signed: bool) -> np.ndarray:
|
|
645
650
|
"""Convert an array of float32 value to a 4bit data-type and pack every two concecutive elements in a byte.
|
|
646
651
|
See :ref:`onnx-detail-int4` for technical details.
|
|
647
652
|
|
|
@@ -770,12 +775,13 @@ def make_tensor(
|
|
|
770
775
|
TensorProto.INT4,
|
|
771
776
|
):
|
|
772
777
|
signed = data_type == TensorProto.INT4
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
)
|
|
778
|
+
|
|
779
|
+
# Two packed 4-bit values must be represented as a single uint8 value.
|
|
780
|
+
# Therefore, pack_float32_to_4bit() sets the dtype of the output vals
|
|
781
|
+
# to uint8 regardless of the value of 'signed'. Using int8 would cause
|
|
782
|
+
# the size of int4 tensors to increase ~5x if the tensor contains negative values (due to
|
|
783
|
+
# the way negative values are serialized by protobuf).
|
|
784
|
+
vals = pack_float32_to_4bit(vals, signed=signed).flatten().tolist()
|
|
779
785
|
elif data_type == TensorProto.BOOL:
|
|
780
786
|
vals = np.array(vals).astype(int)
|
|
781
787
|
elif data_type == TensorProto.STRING:
|
|
@@ -836,7 +842,7 @@ def make_sequence(
|
|
|
836
842
|
|
|
837
843
|
|
|
838
844
|
def make_map(
|
|
839
|
-
name: str, key_type: int, keys:
|
|
845
|
+
name: str, key_type: int, keys: list[Any], values: SequenceProto
|
|
840
846
|
) -> MapProto:
|
|
841
847
|
"""Make a Map with specified key-value pair arguments.
|
|
842
848
|
|
|
@@ -869,7 +875,7 @@ def make_map(
|
|
|
869
875
|
def make_optional(
|
|
870
876
|
name: str,
|
|
871
877
|
elem_type: OptionalProto.DataType,
|
|
872
|
-
value:
|
|
878
|
+
value: Any | None,
|
|
873
879
|
) -> OptionalProto:
|
|
874
880
|
"""Make an Optional with specified value arguments."""
|
|
875
881
|
optional = OptionalProto()
|
|
@@ -895,7 +901,7 @@ def make_optional(
|
|
|
895
901
|
return optional
|
|
896
902
|
|
|
897
903
|
|
|
898
|
-
def _to_bytes(value:
|
|
904
|
+
def _to_bytes(value: str | bytes) -> bytes:
|
|
899
905
|
"""Coerce a string (or bytes) value into UTF-8 bytes."""
|
|
900
906
|
return value if isinstance(value, bytes) else value.encode("utf-8")
|
|
901
907
|
|
|
@@ -903,8 +909,8 @@ def _to_bytes(value: Union[str, bytes]) -> bytes:
|
|
|
903
909
|
def make_attribute(
|
|
904
910
|
key: str,
|
|
905
911
|
value: Any,
|
|
906
|
-
doc_string:
|
|
907
|
-
attr_type:
|
|
912
|
+
doc_string: str | None = None,
|
|
913
|
+
attr_type: int | None = None,
|
|
908
914
|
) -> AttributeProto:
|
|
909
915
|
"""Makes an AttributeProto based on the value type."""
|
|
910
916
|
attr = AttributeProto()
|
|
@@ -995,7 +1001,7 @@ def make_attribute(
|
|
|
995
1001
|
|
|
996
1002
|
|
|
997
1003
|
def make_attribute_ref(
|
|
998
|
-
name: str, attr_type: AttributeProto.AttributeType, doc_string:
|
|
1004
|
+
name: str, attr_type: AttributeProto.AttributeType, doc_string: str | None = None
|
|
999
1005
|
) -> AttributeProto:
|
|
1000
1006
|
"""Make an AttributeProto holding a reference to the parent function's attribute of given name and type."""
|
|
1001
1007
|
attr = AttributeProto()
|
|
@@ -1059,8 +1065,8 @@ def make_empty_tensor_value_info(name: str) -> ValueInfoProto:
|
|
|
1059
1065
|
|
|
1060
1066
|
def make_tensor_type_proto(
|
|
1061
1067
|
elem_type: int,
|
|
1062
|
-
shape:
|
|
1063
|
-
shape_denotation:
|
|
1068
|
+
shape: Sequence[str | int | None] | None,
|
|
1069
|
+
shape_denotation: list[str] | None = None,
|
|
1064
1070
|
) -> TypeProto:
|
|
1065
1071
|
"""Makes a Tensor TypeProto based on the data type and shape."""
|
|
1066
1072
|
type_proto = TypeProto()
|
|
@@ -1105,9 +1111,9 @@ def make_tensor_type_proto(
|
|
|
1105
1111
|
def make_tensor_value_info(
|
|
1106
1112
|
name: str,
|
|
1107
1113
|
elem_type: int,
|
|
1108
|
-
shape:
|
|
1114
|
+
shape: Sequence[str | int | None] | None,
|
|
1109
1115
|
doc_string: str = "",
|
|
1110
|
-
shape_denotation:
|
|
1116
|
+
shape_denotation: list[str] | None = None,
|
|
1111
1117
|
) -> ValueInfoProto:
|
|
1112
1118
|
"""Makes a ValueInfoProto based on the data type and shape."""
|
|
1113
1119
|
value_info_proto = ValueInfoProto()
|
|
@@ -1122,8 +1128,8 @@ def make_tensor_value_info(
|
|
|
1122
1128
|
|
|
1123
1129
|
def make_sparse_tensor_type_proto(
|
|
1124
1130
|
elem_type: int,
|
|
1125
|
-
shape:
|
|
1126
|
-
shape_denotation:
|
|
1131
|
+
shape: Sequence[str | int | None] | None,
|
|
1132
|
+
shape_denotation: list[str] | None = None,
|
|
1127
1133
|
) -> TypeProto:
|
|
1128
1134
|
"""Makes a SparseTensor TypeProto based on the data type and shape."""
|
|
1129
1135
|
type_proto = TypeProto()
|
|
@@ -1168,9 +1174,9 @@ def make_sparse_tensor_type_proto(
|
|
|
1168
1174
|
def make_sparse_tensor_value_info(
|
|
1169
1175
|
name: str,
|
|
1170
1176
|
elem_type: int,
|
|
1171
|
-
shape:
|
|
1177
|
+
shape: Sequence[str | int | None] | None,
|
|
1172
1178
|
doc_string: str = "",
|
|
1173
|
-
shape_denotation:
|
|
1179
|
+
shape_denotation: list[str] | None = None,
|
|
1174
1180
|
) -> ValueInfoProto:
|
|
1175
1181
|
"""Makes a SparseTensor ValueInfoProto based on the data type and shape."""
|
|
1176
1182
|
value_info_proto = ValueInfoProto()
|
|
@@ -1231,7 +1237,7 @@ def make_value_info(
|
|
|
1231
1237
|
return value_info_proto
|
|
1232
1238
|
|
|
1233
1239
|
|
|
1234
|
-
def _sanitize_str(s:
|
|
1240
|
+
def _sanitize_str(s: str | bytes) -> str:
|
|
1235
1241
|
if isinstance(s, str):
|
|
1236
1242
|
sanitized = s
|
|
1237
1243
|
elif isinstance(s, bytes):
|
|
@@ -1246,9 +1252,9 @@ def _sanitize_str(s: Union[str, bytes]) -> str:
|
|
|
1246
1252
|
def make_tensor_sequence_value_info(
|
|
1247
1253
|
name: str,
|
|
1248
1254
|
elem_type: int,
|
|
1249
|
-
shape:
|
|
1255
|
+
shape: Sequence[str | int | None] | None,
|
|
1250
1256
|
doc_string: str = "",
|
|
1251
|
-
elem_shape_denotation:
|
|
1257
|
+
elem_shape_denotation: list[str] | None = None,
|
|
1252
1258
|
) -> ValueInfoProto:
|
|
1253
1259
|
"""Makes a Sequence[Tensors] ValueInfoProto based on the data type and shape."""
|
|
1254
1260
|
value_info_proto = ValueInfoProto()
|
|
@@ -1265,7 +1271,7 @@ def make_tensor_sequence_value_info(
|
|
|
1265
1271
|
|
|
1266
1272
|
def printable_attribute(
|
|
1267
1273
|
attr: AttributeProto, subgraphs: bool = False
|
|
1268
|
-
) ->
|
|
1274
|
+
) -> str | tuple[str, list[GraphProto]]:
|
|
1269
1275
|
content = []
|
|
1270
1276
|
content.append(attr.name)
|
|
1271
1277
|
content.append("=")
|
|
@@ -1381,13 +1387,13 @@ def printable_tensor_proto(t: TensorProto) -> str:
|
|
|
1381
1387
|
|
|
1382
1388
|
def printable_node(
|
|
1383
1389
|
node: NodeProto, prefix: str = "", subgraphs: bool = False
|
|
1384
|
-
) ->
|
|
1390
|
+
) -> str | tuple[str, list[GraphProto]]:
|
|
1385
1391
|
content = []
|
|
1386
1392
|
if len(node.output):
|
|
1387
1393
|
content.append(", ".join([f"%{name}" for name in node.output]))
|
|
1388
1394
|
content.append("=")
|
|
1389
1395
|
# To deal with nested graphs
|
|
1390
|
-
graphs:
|
|
1396
|
+
graphs: list[GraphProto] = []
|
|
1391
1397
|
printed_attrs = []
|
|
1392
1398
|
for attr in node.attribute:
|
|
1393
1399
|
if subgraphs:
|
|
@@ -1444,7 +1450,7 @@ def printable_graph(graph: GraphProto, prefix: str = "") -> str:
|
|
|
1444
1450
|
content.append(prefix + " ".join(header))
|
|
1445
1451
|
header = []
|
|
1446
1452
|
for line in in_strs:
|
|
1447
|
-
content.append(prefix + " " + line)
|
|
1453
|
+
content.append(prefix + " " + line) # noqa: PERF401
|
|
1448
1454
|
header.append(")")
|
|
1449
1455
|
|
|
1450
1456
|
if in_with_init_strs:
|
|
@@ -1452,7 +1458,7 @@ def printable_graph(graph: GraphProto, prefix: str = "") -> str:
|
|
|
1452
1458
|
content.append(prefix + " ".join(header))
|
|
1453
1459
|
header = []
|
|
1454
1460
|
for line in in_with_init_strs:
|
|
1455
|
-
content.append(prefix + " " + line)
|
|
1461
|
+
content.append(prefix + " " + line) # noqa: PERF401
|
|
1456
1462
|
header.append(")")
|
|
1457
1463
|
|
|
1458
1464
|
# from IR 4 onwards an initializer is not required to have a matching graph input
|
|
@@ -1468,12 +1474,12 @@ def printable_graph(graph: GraphProto, prefix: str = "") -> str:
|
|
|
1468
1474
|
content.append(prefix + " ".join(header))
|
|
1469
1475
|
header = []
|
|
1470
1476
|
for line in init_strs:
|
|
1471
|
-
content.append(prefix + " " + line)
|
|
1477
|
+
content.append(prefix + " " + line) # noqa: PERF401
|
|
1472
1478
|
header.append(")")
|
|
1473
1479
|
|
|
1474
1480
|
header.append("{")
|
|
1475
1481
|
content.append(prefix + " ".join(header))
|
|
1476
|
-
graphs:
|
|
1482
|
+
graphs: list[GraphProto] = []
|
|
1477
1483
|
# body
|
|
1478
1484
|
for node in graph.node:
|
|
1479
1485
|
contents_subgraphs = printable_node(node, indent, subgraphs=True)
|
|
@@ -1489,7 +1495,7 @@ def printable_graph(graph: GraphProto, prefix: str = "") -> str:
|
|
|
1489
1495
|
# closing bracket
|
|
1490
1496
|
content.append(prefix + "}")
|
|
1491
1497
|
for g in graphs:
|
|
1492
|
-
content.append("\n" + printable_graph(g))
|
|
1498
|
+
content.append("\n" + printable_graph(g)) # noqa: PERF401
|
|
1493
1499
|
return "\n".join(content)
|
|
1494
1500
|
|
|
1495
1501
|
|
|
@@ -1513,8 +1519,8 @@ def strip_doc_string(proto: google.protobuf.message.Message) -> None:
|
|
|
1513
1519
|
def make_training_info(
|
|
1514
1520
|
algorithm: GraphProto,
|
|
1515
1521
|
algorithm_bindings: AssignmentBindingType,
|
|
1516
|
-
initialization:
|
|
1517
|
-
initialization_bindings:
|
|
1522
|
+
initialization: GraphProto | None,
|
|
1523
|
+
initialization_bindings: AssignmentBindingType | None,
|
|
1518
1524
|
) -> TrainingInfoProto:
|
|
1519
1525
|
training_info = TrainingInfoProto()
|
|
1520
1526
|
training_info.algorithm.CopyFrom(algorithm)
|
|
@@ -1594,9 +1600,28 @@ def np_dtype_to_tensor_dtype(np_dtype: np.dtype) -> int:
|
|
|
1594
1600
|
Returns:
|
|
1595
1601
|
TensorsProto's data_type
|
|
1596
1602
|
"""
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1603
|
+
if np_dtype in mapping._NP_TYPE_TO_TENSOR_TYPE:
|
|
1604
|
+
return cast(
|
|
1605
|
+
int,
|
|
1606
|
+
mapping._NP_TYPE_TO_TENSOR_TYPE[np_dtype],
|
|
1607
|
+
)
|
|
1608
|
+
|
|
1609
|
+
if np.issubdtype(np_dtype, np.str_):
|
|
1610
|
+
return TensorProto.STRING
|
|
1611
|
+
|
|
1612
|
+
if np_dtype in {
|
|
1613
|
+
custom_np_types.bfloat16,
|
|
1614
|
+
custom_np_types.float8e4m3fn,
|
|
1615
|
+
custom_np_types.float8e4m3fnuz,
|
|
1616
|
+
custom_np_types.float8e5m2,
|
|
1617
|
+
custom_np_types.float8e5m2fnuz,
|
|
1618
|
+
custom_np_types.int4,
|
|
1619
|
+
custom_np_types.uint4,
|
|
1620
|
+
}:
|
|
1621
|
+
return custom_np_types.mapping_name_to_data_type[np_dtype.descr[0][0]]
|
|
1622
|
+
|
|
1623
|
+
raise ValueError(
|
|
1624
|
+
f"Unable to convert type {np_dtype!r} into TensorProto element type."
|
|
1600
1625
|
)
|
|
1601
1626
|
|
|
1602
1627
|
|
onnx/hub.py
CHANGED
|
@@ -5,13 +5,15 @@
|
|
|
5
5
|
|
|
6
6
|
This implements the python client for the ONNX model hub.
|
|
7
7
|
"""
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
8
10
|
import hashlib
|
|
9
11
|
import json
|
|
10
12
|
import os
|
|
11
13
|
import sys
|
|
12
14
|
from io import BytesIO
|
|
13
15
|
from os.path import join
|
|
14
|
-
from typing import IO, Any, Dict, List,
|
|
16
|
+
from typing import IO, Any, Dict, List, cast
|
|
15
17
|
from urllib.error import HTTPError
|
|
16
18
|
from urllib.request import urlopen
|
|
17
19
|
|
|
@@ -38,7 +40,7 @@ class ModelInfo:
|
|
|
38
40
|
opset: The opset version of the model.
|
|
39
41
|
"""
|
|
40
42
|
|
|
41
|
-
def __init__(self, raw_model_info:
|
|
43
|
+
def __init__(self, raw_model_info: dict[str, Any]) -> None:
|
|
42
44
|
"""Initializer.
|
|
43
45
|
|
|
44
46
|
Args:
|
|
@@ -47,17 +49,17 @@ class ModelInfo:
|
|
|
47
49
|
self.model = cast(str, raw_model_info["model"])
|
|
48
50
|
|
|
49
51
|
self.model_path = cast(str, raw_model_info["model_path"])
|
|
50
|
-
self.metadata:
|
|
51
|
-
self.model_sha:
|
|
52
|
+
self.metadata: dict[str, Any] = cast(Dict[str, Any], raw_model_info["metadata"])
|
|
53
|
+
self.model_sha: str | None = None
|
|
52
54
|
if "model_sha" in self.metadata:
|
|
53
55
|
self.model_sha = cast(str, self.metadata["model_sha"])
|
|
54
56
|
|
|
55
|
-
self.tags:
|
|
57
|
+
self.tags: set[str] = set()
|
|
56
58
|
if "tags" in self.metadata:
|
|
57
59
|
self.tags = set(cast(List[str], self.metadata["tags"]))
|
|
58
60
|
|
|
59
61
|
self.opset = cast(int, raw_model_info["opset_version"])
|
|
60
|
-
self.raw_model_info:
|
|
62
|
+
self.raw_model_info: dict[str, Any] = raw_model_info
|
|
61
63
|
|
|
62
64
|
def __str__(self) -> str:
|
|
63
65
|
return f"ModelInfo(model={self.model}, opset={self.opset}, path={self.model_path}, metadata={self.metadata})"
|
|
@@ -85,7 +87,7 @@ def get_dir() -> str:
|
|
|
85
87
|
return _ONNX_HUB_DIR
|
|
86
88
|
|
|
87
89
|
|
|
88
|
-
def _parse_repo_info(repo: str) ->
|
|
90
|
+
def _parse_repo_info(repo: str) -> tuple[str, str, str]:
|
|
89
91
|
"""Gets the repo owner, name and ref from a repo specification string."""
|
|
90
92
|
repo_owner = repo.split(":")[0].split("/")[0]
|
|
91
93
|
repo_name = repo.split(":")[0].split("/")[1]
|
|
@@ -142,9 +144,9 @@ def _download_file(url: str, file_name: str) -> None:
|
|
|
142
144
|
|
|
143
145
|
def list_models(
|
|
144
146
|
repo: str = "onnx/models:main",
|
|
145
|
-
model:
|
|
146
|
-
tags:
|
|
147
|
-
) ->
|
|
147
|
+
model: str | None = None,
|
|
148
|
+
tags: list[str] | None = None,
|
|
149
|
+
) -> list[ModelInfo]:
|
|
148
150
|
"""Gets the list of model info consistent with a given name and tags
|
|
149
151
|
|
|
150
152
|
Args:
|
|
@@ -163,7 +165,7 @@ def list_models(
|
|
|
163
165
|
manifest_url = base_url + "ONNX_HUB_MANIFEST.json"
|
|
164
166
|
try:
|
|
165
167
|
with urlopen(manifest_url) as response:
|
|
166
|
-
manifest:
|
|
168
|
+
manifest: list[ModelInfo] = [
|
|
167
169
|
ModelInfo(info) for info in json.load(cast(IO[str], response))
|
|
168
170
|
]
|
|
169
171
|
except HTTPError as e:
|
|
@@ -181,7 +183,7 @@ def list_models(
|
|
|
181
183
|
return matching_models
|
|
182
184
|
|
|
183
185
|
canonical_tags = {t.lower() for t in tags}
|
|
184
|
-
matching_info_list:
|
|
186
|
+
matching_info_list: list[ModelInfo] = []
|
|
185
187
|
for m in matching_models:
|
|
186
188
|
model_tags = {t.lower() for t in m.tags}
|
|
187
189
|
if len(canonical_tags.intersection(model_tags)) > 0:
|
|
@@ -190,7 +192,7 @@ def list_models(
|
|
|
190
192
|
|
|
191
193
|
|
|
192
194
|
def get_model_info(
|
|
193
|
-
model: str, repo: str = "onnx/models:main", opset:
|
|
195
|
+
model: str, repo: str = "onnx/models:main", opset: int | None = None
|
|
194
196
|
) -> ModelInfo:
|
|
195
197
|
"""Gets the model info matching the given name and opset.
|
|
196
198
|
|
|
@@ -225,10 +227,10 @@ def get_model_info(
|
|
|
225
227
|
def load(
|
|
226
228
|
model: str,
|
|
227
229
|
repo: str = "onnx/models:main",
|
|
228
|
-
opset:
|
|
230
|
+
opset: int | None = None,
|
|
229
231
|
force_reload: bool = False,
|
|
230
232
|
silent: bool = False,
|
|
231
|
-
) ->
|
|
233
|
+
) -> onnx.ModelProto | None:
|
|
232
234
|
"""Downloads a model by name from the onnx model hub.
|
|
233
235
|
|
|
234
236
|
Args:
|
|
@@ -250,9 +252,9 @@ def load(
|
|
|
250
252
|
selected_model = get_model_info(model, repo, opset)
|
|
251
253
|
local_model_path_arr = selected_model.model_path.split("/")
|
|
252
254
|
if selected_model.model_sha is not None:
|
|
253
|
-
local_model_path_arr[
|
|
254
|
-
-1
|
|
255
|
-
|
|
255
|
+
local_model_path_arr[-1] = (
|
|
256
|
+
f"{selected_model.model_sha}_{local_model_path_arr[-1]}"
|
|
257
|
+
)
|
|
256
258
|
local_model_path = join(_ONNX_HUB_DIR, os.sep.join(local_model_path_arr))
|
|
257
259
|
|
|
258
260
|
if force_reload or not os.path.exists(local_model_path):
|
|
@@ -290,10 +292,10 @@ def load(
|
|
|
290
292
|
def download_model_with_test_data(
|
|
291
293
|
model: str,
|
|
292
294
|
repo: str = "onnx/models:main",
|
|
293
|
-
opset:
|
|
295
|
+
opset: int | None = None,
|
|
294
296
|
force_reload: bool = False,
|
|
295
297
|
silent: bool = False,
|
|
296
|
-
) ->
|
|
298
|
+
) -> str | None:
|
|
297
299
|
"""Downloads a model along with test data by name from the onnx model hub and returns the directory to which the files have been extracted.
|
|
298
300
|
Users are responsible for making sure the model comes from a trusted source, and the data is safe to be extracted.
|
|
299
301
|
|
|
@@ -322,9 +324,9 @@ def download_model_with_test_data(
|
|
|
322
324
|
model_with_data_sha = selected_model.metadata["model_with_data_sha"]
|
|
323
325
|
|
|
324
326
|
if model_with_data_sha is not None:
|
|
325
|
-
local_model_with_data_path_arr[
|
|
326
|
-
-1
|
|
327
|
-
|
|
327
|
+
local_model_with_data_path_arr[-1] = (
|
|
328
|
+
f"{model_with_data_sha}_{local_model_with_data_path_arr[-1]}"
|
|
329
|
+
)
|
|
328
330
|
local_model_with_data_path = join(
|
|
329
331
|
_ONNX_HUB_DIR, os.sep.join(local_model_with_data_path_arr)
|
|
330
332
|
)
|
|
@@ -383,10 +385,10 @@ def load_composite_model(
|
|
|
383
385
|
preprocessing_model: str,
|
|
384
386
|
network_repo: str = "onnx/models:main",
|
|
385
387
|
preprocessing_repo: str = "onnx/models:main",
|
|
386
|
-
opset:
|
|
388
|
+
opset: int | None = None,
|
|
387
389
|
force_reload: bool = False,
|
|
388
390
|
silent: bool = False,
|
|
389
|
-
) ->
|
|
391
|
+
) -> onnx.ModelProto | None:
|
|
390
392
|
"""Builds a composite model including data preprocessing by downloading a network and a preprocessing model
|
|
391
393
|
and combine it into a single model
|
|
392
394
|
|
|
@@ -420,9 +422,9 @@ def load_composite_model(
|
|
|
420
422
|
if network is None:
|
|
421
423
|
raise RuntimeError(f"Could not load the network model: {network_model}")
|
|
422
424
|
|
|
423
|
-
all_domains:
|
|
424
|
-
domains_to_version_network:
|
|
425
|
-
domains_to_version_preprocessing:
|
|
425
|
+
all_domains: set[str] = set()
|
|
426
|
+
domains_to_version_network: dict[str, int] = {}
|
|
427
|
+
domains_to_version_preprocessing: dict[str, int] = {}
|
|
426
428
|
|
|
427
429
|
for opset_import_entry in network.opset_import:
|
|
428
430
|
domain = (
|
onnx/inliner/inliner.cc
CHANGED
|
@@ -66,7 +66,6 @@ struct OpsetMap : public OpsetMapBase {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
bool Add(const google::protobuf::RepeatedPtrField<OperatorSetIdProto>& list) {
|
|
69
|
-
OpsetMapBase result;
|
|
70
69
|
for (const auto& pair : list) {
|
|
71
70
|
auto domain = NormalizeDomain(pair.domain());
|
|
72
71
|
auto version = pair.version();
|
onnx/mapping.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 warnings
|
|
6
7
|
from typing import Any, Dict, NamedTuple, Union, cast
|
|
@@ -93,7 +94,7 @@ TENSOR_TYPE_MAP = {
|
|
|
93
94
|
class DeprecatedWarningDict(dict): # type: ignore
|
|
94
95
|
def __init__(
|
|
95
96
|
self,
|
|
96
|
-
dictionary:
|
|
97
|
+
dictionary: dict[int, int | str | np.dtype],
|
|
97
98
|
original_function: str,
|
|
98
99
|
future_function: str = "",
|
|
99
100
|
) -> None:
|
|
@@ -109,7 +110,7 @@ class DeprecatedWarningDict(dict): # type: ignore
|
|
|
109
110
|
and self._future_function == other._future_function
|
|
110
111
|
)
|
|
111
112
|
|
|
112
|
-
def __getitem__(self, key:
|
|
113
|
+
def __getitem__(self, key: int | str | np.dtype) -> Any:
|
|
113
114
|
if not self._future_function:
|
|
114
115
|
warnings.warn(
|
|
115
116
|
str(
|