onnx 1.13.1__cp38-cp38-macosx_10_12_universal2.whl → 1.14.1__cp38-cp38-macosx_10_12_universal2.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 +116 -70
- onnx/backend/__init__.py +2 -0
- onnx/backend/base.py +3 -0
- onnx/backend/sample/__init__.py +2 -0
- onnx/backend/sample/ops/__init__.py +8 -6
- onnx/backend/sample/ops/abs.py +1 -1
- onnx/backend/test/__init__.py +4 -1
- onnx/backend/test/case/__init__.py +4 -2
- onnx/backend/test/case/base.py +2 -0
- onnx/backend/test/case/model/__init__.py +8 -6
- onnx/backend/test/case/model/expand.py +4 -3
- onnx/backend/test/case/model/gradient.py +4 -3
- onnx/backend/test/case/model/sequence.py +4 -3
- onnx/backend/test/case/model/shrink.py +4 -3
- onnx/backend/test/case/model/sign.py +4 -3
- onnx/backend/test/case/model/single-relu.py +4 -3
- onnx/backend/test/case/model/stringnormalizer.py +4 -3
- onnx/backend/test/case/node/__init__.py +18 -12
- onnx/backend/test/case/node/abs.py +4 -3
- onnx/backend/test/case/node/acos.py +4 -3
- onnx/backend/test/case/node/acosh.py +4 -3
- onnx/backend/test/case/node/adagrad.py +4 -3
- onnx/backend/test/case/node/adam.py +4 -3
- onnx/backend/test/case/node/add.py +4 -3
- onnx/backend/test/case/node/ai_onnx_ml/__init__.py +0 -0
- onnx/backend/test/case/node/ai_onnx_ml/array_feature_extractor.py +30 -0
- onnx/backend/test/case/node/ai_onnx_ml/binarizer.py +27 -0
- onnx/backend/test/case/node/and.py +4 -3
- onnx/backend/test/case/node/argmax.py +4 -3
- onnx/backend/test/case/node/argmin.py +4 -3
- onnx/backend/test/case/node/asin.py +4 -3
- onnx/backend/test/case/node/asinh.py +4 -3
- onnx/backend/test/case/node/atan.py +4 -3
- onnx/backend/test/case/node/atanh.py +4 -3
- onnx/backend/test/case/node/averagepool.py +43 -4
- onnx/backend/test/case/node/batchnorm.py +4 -3
- onnx/backend/test/case/node/bernoulli.py +4 -3
- onnx/backend/test/case/node/bitshift.py +4 -3
- onnx/backend/test/case/node/bitwiseand.py +13 -11
- onnx/backend/test/case/node/bitwisenot.py +8 -6
- onnx/backend/test/case/node/bitwiseor.py +13 -11
- onnx/backend/test/case/node/bitwisexor.py +13 -11
- onnx/backend/test/case/node/blackmanwindow.py +4 -4
- onnx/backend/test/case/node/cast.py +218 -8
- onnx/backend/test/case/node/castlike.py +103 -9
- onnx/backend/test/case/node/ceil.py +4 -3
- onnx/backend/test/case/node/celu.py +4 -3
- onnx/backend/test/case/node/center_crop_pad.py +26 -3
- onnx/backend/test/case/node/clip.py +4 -3
- onnx/backend/test/case/node/col2im.py +5 -4
- onnx/backend/test/case/node/compress.py +4 -3
- onnx/backend/test/case/node/concat.py +4 -3
- onnx/backend/test/case/node/constant.py +4 -3
- onnx/backend/test/case/node/constantofshape.py +4 -3
- onnx/backend/test/case/node/conv.py +4 -3
- onnx/backend/test/case/node/convinteger.py +4 -3
- onnx/backend/test/case/node/convtranspose.py +4 -3
- onnx/backend/test/case/node/cos.py +4 -3
- onnx/backend/test/case/node/cosh.py +4 -3
- onnx/backend/test/case/node/cumsum.py +4 -3
- onnx/backend/test/case/node/deformconv.py +170 -0
- onnx/backend/test/case/node/depthtospace.py +4 -3
- onnx/backend/test/case/node/dequantizelinear.py +46 -3
- onnx/backend/test/case/node/det.py +4 -3
- onnx/backend/test/case/node/dft.py +4 -4
- onnx/backend/test/case/node/div.py +4 -3
- onnx/backend/test/case/node/dropout.py +4 -3
- onnx/backend/test/case/node/dynamicquantizelinear.py +4 -3
- onnx/backend/test/case/node/einsum.py +4 -4
- onnx/backend/test/case/node/elu.py +4 -3
- onnx/backend/test/case/node/equal.py +28 -3
- onnx/backend/test/case/node/erf.py +4 -3
- onnx/backend/test/case/node/exp.py +4 -3
- onnx/backend/test/case/node/expand.py +4 -3
- onnx/backend/test/case/node/eyelike.py +4 -3
- onnx/backend/test/case/node/flatten.py +4 -3
- onnx/backend/test/case/node/floor.py +4 -3
- onnx/backend/test/case/node/gather.py +4 -3
- onnx/backend/test/case/node/gatherelements.py +4 -3
- onnx/backend/test/case/node/gathernd.py +5 -4
- onnx/backend/test/case/node/gemm.py +4 -3
- onnx/backend/test/case/node/globalaveragepool.py +4 -3
- onnx/backend/test/case/node/globalmaxpool.py +4 -3
- onnx/backend/test/case/node/greater.py +4 -3
- onnx/backend/test/case/node/greater_equal.py +4 -3
- onnx/backend/test/case/node/gridsample.py +4 -3
- onnx/backend/test/case/node/groupnormalization.py +5 -4
- onnx/backend/test/case/node/gru.py +10 -9
- onnx/backend/test/case/node/hammingwindow.py +4 -4
- onnx/backend/test/case/node/hannwindow.py +4 -4
- onnx/backend/test/case/node/hardmax.py +4 -3
- onnx/backend/test/case/node/hardsigmoid.py +4 -3
- onnx/backend/test/case/node/hardswish.py +4 -3
- onnx/backend/test/case/node/identity.py +4 -3
- onnx/backend/test/case/node/if.py +4 -3
- onnx/backend/test/case/node/instancenorm.py +4 -3
- onnx/backend/test/case/node/isinf.py +4 -3
- onnx/backend/test/case/node/isnan.py +4 -3
- onnx/backend/test/case/node/layernormalization.py +4 -3
- onnx/backend/test/case/node/leakyrelu.py +4 -3
- onnx/backend/test/case/node/less.py +4 -3
- onnx/backend/test/case/node/less_equal.py +4 -3
- onnx/backend/test/case/node/log.py +4 -3
- onnx/backend/test/case/node/logsoftmax.py +4 -3
- onnx/backend/test/case/node/loop.py +4 -3
- onnx/backend/test/case/node/lppool.py +279 -0
- onnx/backend/test/case/node/lrn.py +4 -3
- onnx/backend/test/case/node/lstm.py +10 -9
- onnx/backend/test/case/node/matmul.py +4 -3
- onnx/backend/test/case/node/matmulinteger.py +4 -3
- onnx/backend/test/case/node/max.py +5 -4
- onnx/backend/test/case/node/maxpool.py +9 -4
- onnx/backend/test/case/node/maxunpool.py +4 -3
- onnx/backend/test/case/node/mean.py +4 -3
- onnx/backend/test/case/node/meanvariancenormalization.py +4 -3
- onnx/backend/test/case/node/melweightmatrix.py +4 -4
- onnx/backend/test/case/node/min.py +5 -4
- onnx/backend/test/case/node/mish.py +4 -3
- onnx/backend/test/case/node/mod.py +4 -3
- onnx/backend/test/case/node/momentum.py +4 -3
- onnx/backend/test/case/node/mul.py +4 -3
- onnx/backend/test/case/node/neg.py +4 -3
- onnx/backend/test/case/node/negativeloglikelihoodloss.py +4 -3
- onnx/backend/test/case/node/nonmaxsuppression.py +4 -3
- onnx/backend/test/case/node/nonzero.py +4 -3
- onnx/backend/test/case/node/not.py +4 -3
- onnx/backend/test/case/node/onehot.py +5 -4
- onnx/backend/test/case/node/optionalgetelement.py +4 -3
- onnx/backend/test/case/node/optionalhaselement.py +4 -3
- onnx/backend/test/case/node/or.py +4 -3
- onnx/backend/test/case/node/pad.py +36 -5
- onnx/backend/test/case/node/pool_op_common.py +20 -2
- onnx/backend/test/case/node/pow.py +4 -3
- onnx/backend/test/case/node/prelu.py +4 -3
- onnx/backend/test/case/node/qlinearconv.py +4 -3
- onnx/backend/test/case/node/qlinearmatmul.py +4 -3
- onnx/backend/test/case/node/quantizelinear.py +50 -3
- onnx/backend/test/case/node/rangeop.py +4 -3
- onnx/backend/test/case/node/reciprocal.py +4 -3
- onnx/backend/test/case/node/reduce_log_sum.py +4 -3
- onnx/backend/test/case/node/reduce_log_sum_exp.py +4 -3
- onnx/backend/test/case/node/reducel1.py +4 -3
- onnx/backend/test/case/node/reducel2.py +4 -3
- onnx/backend/test/case/node/reducemax.py +4 -3
- onnx/backend/test/case/node/reducemean.py +4 -3
- onnx/backend/test/case/node/reducemin.py +4 -3
- onnx/backend/test/case/node/reduceprod.py +4 -3
- onnx/backend/test/case/node/reducesum.py +4 -3
- onnx/backend/test/case/node/reducesumsquare.py +4 -3
- onnx/backend/test/case/node/relu.py +4 -3
- onnx/backend/test/case/node/reshape.py +4 -3
- onnx/backend/test/case/node/resize.py +73 -321
- onnx/backend/test/case/node/reversesequence.py +4 -3
- onnx/backend/test/case/node/rnn.py +10 -9
- onnx/backend/test/case/node/roialign.py +193 -3
- onnx/backend/test/case/node/round.py +4 -3
- onnx/backend/test/case/node/scan.py +4 -3
- onnx/backend/test/case/node/scatter.py +4 -3
- onnx/backend/test/case/node/scatterelements.py +4 -3
- onnx/backend/test/case/node/scatternd.py +4 -3
- onnx/backend/test/case/node/selu.py +4 -3
- onnx/backend/test/case/node/sequence_map.py +4 -4
- onnx/backend/test/case/node/sequenceinsert.py +4 -3
- onnx/backend/test/case/node/shape.py +4 -3
- onnx/backend/test/case/node/shrink.py +4 -3
- onnx/backend/test/case/node/sigmoid.py +4 -3
- onnx/backend/test/case/node/sign.py +4 -3
- onnx/backend/test/case/node/sin.py +4 -3
- onnx/backend/test/case/node/sinh.py +4 -3
- onnx/backend/test/case/node/size.py +4 -3
- onnx/backend/test/case/node/slice.py +4 -3
- onnx/backend/test/case/node/softmax.py +4 -3
- onnx/backend/test/case/node/softmaxcrossentropy.py +4 -3
- onnx/backend/test/case/node/softplus.py +4 -3
- onnx/backend/test/case/node/softsign.py +4 -3
- onnx/backend/test/case/node/spacetodepth.py +6 -3
- onnx/backend/test/case/node/split.py +4 -3
- onnx/backend/test/case/node/splittosequence.py +79 -0
- onnx/backend/test/case/node/sqrt.py +4 -3
- onnx/backend/test/case/node/squeeze.py +2 -0
- onnx/backend/test/case/node/stft.py +4 -4
- onnx/backend/test/case/node/stringnormalizer.py +4 -4
- onnx/backend/test/case/node/sub.py +4 -3
- onnx/backend/test/case/node/sum.py +4 -3
- onnx/backend/test/case/node/tan.py +4 -3
- onnx/backend/test/case/node/tanh.py +4 -3
- onnx/backend/test/case/node/tfidfvectorizer.py +4 -3
- onnx/backend/test/case/node/thresholdedrelu.py +4 -3
- onnx/backend/test/case/node/tile.py +4 -3
- onnx/backend/test/case/node/topk.py +4 -3
- onnx/backend/test/case/node/transpose.py +8 -7
- onnx/backend/test/case/node/trilu.py +4 -3
- onnx/backend/test/case/node/unique.py +4 -3
- onnx/backend/test/case/node/unsqueeze.py +4 -3
- onnx/backend/test/case/node/upsample.py +4 -3
- onnx/backend/test/case/node/where.py +4 -3
- onnx/backend/test/case/node/xor.py +4 -3
- onnx/backend/test/case/test_case.py +2 -0
- onnx/backend/test/case/utils.py +9 -0
- onnx/backend/test/cmd_tools.py +22 -13
- onnx/backend/test/data/light/README.md +16 -0
- onnx/backend/test/data/light/light_bvlc_alexnet.onnx +0 -0
- onnx/backend/test/data/light/light_bvlc_alexnet_output_0.pb +1 -0
- onnx/backend/test/data/light/light_densenet121.onnx +0 -0
- onnx/backend/test/data/light/light_densenet121_output_0.pb +1 -0
- onnx/backend/test/data/light/light_inception_v1.onnx +0 -0
- onnx/backend/test/data/light/light_inception_v1_output_0.pb +1 -0
- onnx/backend/test/data/light/light_inception_v2.onnx +0 -0
- onnx/backend/test/data/light/light_inception_v2_output_0.pb +1 -0
- onnx/backend/test/data/light/light_resnet50.onnx +0 -0
- onnx/backend/test/data/light/light_resnet50_output_0.pb +1 -0
- onnx/backend/test/data/light/light_shufflenet.onnx +0 -0
- onnx/backend/test/data/light/light_shufflenet_output_0.pb +1 -0
- onnx/backend/test/data/light/light_squeezenet.onnx +0 -0
- onnx/backend/test/data/light/light_squeezenet_output_0.pb +1 -0
- onnx/backend/test/data/light/light_vgg19.onnx +0 -0
- onnx/backend/test/data/light/light_vgg19_output_0.pb +1 -0
- onnx/backend/test/data/light/light_zfnet512.onnx +0 -0
- onnx/backend/test/data/light/light_zfnet512_output_0.pb +1 -0
- onnx/backend/test/data/node/test_acos/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_acosh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_ai_onnx_ml_array_feature_extractor/model.onnx +19 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_array_feature_extractor/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_array_feature_extractor/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_array_feature_extractor/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_binarizer/model.onnx +0 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_binarizer/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_binarizer/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_atanh/test_data_set_0/output_0.pb +2 -2
- 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_dilations/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_dilations/test_data_set_0/output_0.pb +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_basic_deform_conv_with_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_with_padding/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_with_padding/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_with_padding/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_with_padding/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_without_padding/model.onnx +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_without_padding/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_without_padding/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_without_padding/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_basic_deform_conv_without_padding/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_i16_3d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_i16_3d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_i16_3d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_i32_2d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_i32_2d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_i32_2d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_ui64_bcast_3v1d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_ui64_bcast_3v1d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_ui64_bcast_3v1d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_ui8_bcast_4v3d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_ui8_bcast_4v3d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_and_ui8_bcast_4v3d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_not_2d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_not_2d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_not_3d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_not_3d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_not_4d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_not_4d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_i16_4d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_i16_4d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_i16_4d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_i32_2d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_i32_2d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_i32_2d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_ui64_bcast_3v1d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_ui64_bcast_3v1d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_ui64_bcast_3v1d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_ui8_bcast_4v3d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_ui8_bcast_4v3d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_or_ui8_bcast_4v3d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_i16_3d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_i16_3d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_i16_3d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_i32_2d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_i32_2d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_i32_2d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_ui64_bcast_3v1d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_ui64_bcast_3v1d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_ui64_bcast_3v1d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_ui8_bcast_4v3d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_ui8_bcast_4v3d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_bitwise_xor_ui8_bcast_4v3d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_DOUBLE/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc/model.onnx +0 -0
- onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_col2im_pads/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_constant/model.onnx +0 -0
- onnx/backend/test/data/node/test_constant_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_constant_pad_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_constant_pad_negative_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/output_0.pb +1 -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/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_mask_bias/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/model.onnx +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e5m2/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e5m2/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e5m2/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e5m2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_edge_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_equal/model.onnx +0 -0
- onnx/backend/test/data/node/test_equal_bcast/model.onnx +0 -0
- onnx/backend/test/data/node/test_equal_string/model.onnx +0 -0
- onnx/backend/test/data/node/test_equal_string/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_equal_string/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_equal_string/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_equal_string_broadcast/model.onnx +0 -0
- onnx/backend/test/data/node/test_equal_string_broadcast/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_equal_string_broadcast/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_equal_string_broadcast/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_identity/model.onnx +0 -0
- onnx/backend/test/data/node/test_identity_sequence/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/input_0.pb +1 -0
- onnx/backend/test/data/node/test_lppool_1d_default/test_data_set_0/output_0.pb +2 -0
- 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/input_0.pb +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_dilations/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_dilations/test_data_set_0/output_0.pb +1 -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/input_0.pb +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/input_0.pb +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/input_0.pb +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/input_0.pb +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/input_0.pb +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_mish/test_data_set_0/output_0.pb +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_quantizelinear/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e4m3fn/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e4m3fn/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e4m3fn/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e4m3fn/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e4m3fn/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e5m2/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e5m2/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e5m2/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e5m2/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e5m2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_reflect_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_allowzero_reordered/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_extended_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_one_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_cubic/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_cubic_A_n0p5_exclude_outside/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_cubic_antialias/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_linear/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_linear_align_corners/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_linear_antialias/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_linear_half_pixel_symmetric/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_linear_half_pixel_symmetric/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_linear_half_pixel_symmetric/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_linear_half_pixel_symmetric/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_resize_downsample_scales_nearest/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_sizes_cubic_antialias/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_sizes_linear_antialias/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_not_larger/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_not_smaller/model.onnx +0 -0
- 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_axes_2_3/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_tf_crop_and_resize_axes_3_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_cubic/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_cubic_A_n0p5_exclude_outside/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_cubic_align_corners/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_cubic_asymmetric/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_linear/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_linear_half_pixel_symmetric/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_linear_half_pixel_symmetric/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_linear_half_pixel_symmetric/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_linear_half_pixel_symmetric/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_nearest/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_nearest_axes_2_3/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_scales_nearest_axes_3_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_axes_2_3/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_axes_3_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/model.onnx +0 -0
- onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/model.onnx +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_round_prefer_ceil_asymmetric/model.onnx +0 -0
- onnx/backend/test/data/node/test_roialign_mode_max/model.onnx +0 -0
- onnx/backend/test/data/node/test_roialign_mode_max/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_roialign_mode_max/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_roialign_mode_max/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_roialign_mode_max/test_data_set_0/output_0.pb +2 -0
- onnx/backend/test/data/node/test_shape/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_clip_end/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_clip_start/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_end_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_end_negative_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_start_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_start_negative_1/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_size/model.onnx +0 -0
- onnx/backend/test/data/node/test_size_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_softplus_example_expanded_ver18/model.onnx +0 -0
- onnx/backend/test/data/node/{test_softplus_expanded → test_softplus_expanded_ver18}/model.onnx +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_1/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_1/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_1/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_2/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_2/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_nokeepdims/model.onnx +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_nokeepdims/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_split_to_sequence_nokeepdims/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_wrap_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_wrap_pad/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_wrap_pad/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_wrap_pad/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/real/test_bvlc_alexnet/data.json +1 -1
- onnx/backend/test/data/real/test_densenet121/data.json +1 -1
- onnx/backend/test/data/real/test_inception_v1/data.json +1 -1
- onnx/backend/test/data/real/test_inception_v2/data.json +1 -1
- onnx/backend/test/data/real/test_resnet50/data.json +1 -1
- onnx/backend/test/data/real/test_shufflenet/data.json +1 -1
- onnx/backend/test/data/real/test_squeezenet/data.json +1 -1
- onnx/backend/test/data/real/test_vgg19/data.json +1 -1
- onnx/backend/test/data/real/test_zfnet512/data.json +1 -1
- onnx/backend/test/loader/__init__.py +3 -1
- onnx/backend/test/report/__init__.py +3 -1
- onnx/backend/test/report/base.py +2 -0
- onnx/backend/test/report/coverage.py +8 -14
- onnx/backend/test/runner/__init__.py +146 -39
- onnx/backend/test/runner/item.py +2 -0
- onnx/backend/test/stat_coverage.py +23 -26
- onnx/bin/__init__.py +2 -0
- onnx/bin/checker.py +2 -0
- onnx/checker.cc +26 -9
- onnx/checker.h +3 -3
- onnx/checker.py +22 -5
- onnx/common/array_ref.h +2 -0
- onnx/common/assertions.cc +2 -0
- onnx/common/assertions.h +2 -0
- onnx/common/common.h +2 -0
- onnx/common/constants.h +3 -3
- onnx/common/file_utils.h +3 -1
- onnx/common/graph_node_list.h +2 -0
- onnx/common/interned_strings.cc +2 -0
- onnx/common/interned_strings.h +2 -0
- onnx/common/ir.h +2 -0
- onnx/common/ir_pb_converter.cc +7 -1
- onnx/common/ir_pb_converter.h +2 -0
- onnx/common/model_helpers.cc +3 -3
- onnx/common/model_helpers.h +3 -3
- onnx/common/path.cc +0 -1
- onnx/common/path.h +0 -1
- onnx/common/platform_helpers.h +2 -0
- onnx/common/status.cc +2 -0
- onnx/common/status.h +2 -0
- onnx/common/stl_backports.h +3 -3
- onnx/common/tensor.h +24 -171
- onnx/common/version.h +3 -1
- onnx/compose.py +40 -32
- onnx/cpp2py_export.cc +268 -89
- onnx/defs/__init__.py +9 -7
- onnx/defs/attr_proto_util.cc +2 -0
- onnx/defs/attr_proto_util.h +2 -0
- onnx/defs/controlflow/defs.cc +25 -369
- onnx/defs/controlflow/old.cc +444 -0
- onnx/defs/controlflow/utils.cc +357 -0
- onnx/defs/controlflow/utils.h +21 -0
- onnx/defs/data_propagators.h +2 -0
- onnx/defs/data_type_utils.cc +6 -2
- onnx/defs/gen_doc.py +32 -46
- onnx/defs/gen_shape_inference_information.py +2 -0
- onnx/defs/generator/defs.cc +21 -19
- onnx/defs/generator/old.cc +159 -0
- onnx/defs/logical/defs.cc +17 -16
- onnx/defs/logical/old.cc +23 -0
- onnx/defs/math/defs.cc +155 -131
- onnx/defs/math/old.cc +1 -1
- onnx/defs/nn/defs.cc +135 -45
- onnx/defs/nn/old.cc +142 -9
- onnx/defs/operator_sets.h +45 -0
- onnx/defs/optional/defs.cc +8 -4
- onnx/defs/parser.cc +50 -3
- onnx/defs/parser.h +43 -31
- onnx/defs/printer.cc +7 -1
- onnx/defs/printer.h +1 -1
- onnx/defs/quantization/defs.cc +63 -26
- onnx/defs/quantization/old.cc +102 -1
- onnx/defs/reduction/defs.cc +1 -1
- onnx/defs/reduction/utils.cc +5 -4
- onnx/defs/rnn/defs.cc +95 -173
- onnx/defs/schema.cc +45 -29
- onnx/defs/schema.h +125 -15
- onnx/defs/sequence/defs.cc +11 -8
- onnx/defs/shape_inference.cc +25 -4
- onnx/defs/shape_inference.h +29 -1
- onnx/defs/tensor/defs.cc +500 -566
- onnx/defs/tensor/old.cc +777 -47
- onnx/defs/tensor/utils.cc +130 -8
- onnx/defs/tensor/utils.h +2 -0
- onnx/defs/tensor_proto_util.cc +3 -0
- onnx/defs/traditionalml/defs.cc +19 -2
- onnx/examples/Protobufs.ipynb +129 -31
- onnx/examples/check_model.ipynb +29 -21
- onnx/examples/load_model.ipynb +25 -3
- onnx/examples/make_model.ipynb +32 -23
- onnx/external_data_helper.py +6 -6
- onnx/frontend/__init__.py +2 -0
- onnx/gen_proto.py +18 -24
- onnx/helper.py +393 -108
- onnx/hub.py +189 -20
- onnx/mapping.py +29 -3
- onnx/numpy_helper.py +263 -52
- onnx/onnx-ml.proto +28 -6
- onnx/onnx-operators-ml.proto +1 -1
- onnx/onnx-operators.in.proto +1 -1
- onnx/onnx-operators.proto +1 -1
- onnx/onnx.in.proto +28 -6
- onnx/onnx.proto +28 -6
- onnx/onnx_cpp2py_export.cpython-38-darwin.so +0 -0
- onnx/onnx_data_pb2.pyi +2 -1
- onnx/onnx_ml_pb2.py +33 -33
- onnx/onnx_ml_pb2.pyi +12 -2
- onnx/onnx_operators_ml_pb2.pyi +2 -1
- onnx/parser.py +29 -13
- onnx/printer.py +6 -4
- onnx/proto_utils.h +3 -3
- onnx/py_utils.h +3 -3
- onnx/reference/__init__.py +2 -0
- onnx/reference/custom_element_types.py +11 -0
- onnx/reference/op_run.py +84 -8
- onnx/reference/ops/__init__.py +5 -1
- onnx/reference/ops/_helpers.py +55 -0
- onnx/reference/ops/_op.py +19 -12
- onnx/reference/ops/_op_common_indices.py +2 -0
- onnx/reference/ops/_op_common_pool.py +4 -9
- onnx/reference/ops/_op_common_random.py +2 -0
- onnx/reference/ops/_op_common_window.py +2 -0
- onnx/reference/ops/_op_list.py +208 -214
- onnx/reference/ops/aionnx_preview_training/__init__.py +4 -2
- onnx/reference/ops/aionnx_preview_training/_op_list.py +15 -38
- onnx/reference/ops/aionnx_preview_training/_op_run_training.py +2 -0
- onnx/reference/ops/aionnx_preview_training/op_adagrad.py +3 -1
- onnx/reference/ops/aionnx_preview_training/op_adam.py +3 -1
- onnx/reference/ops/aionnx_preview_training/op_momentum.py +3 -1
- onnx/reference/ops/aionnxml/__init__.py +3 -0
- onnx/reference/ops/aionnxml/_common_classifier.py +81 -0
- onnx/reference/ops/aionnxml/_op_list.py +97 -0
- onnx/reference/ops/aionnxml/_op_run_aionnxml.py +8 -0
- onnx/reference/ops/aionnxml/op_array_feature_extractor.py +50 -0
- onnx/reference/ops/aionnxml/op_binarizer.py +15 -0
- onnx/reference/ops/aionnxml/op_dict_vectorizer.py +56 -0
- onnx/reference/ops/aionnxml/op_feature_vectorizer.py +30 -0
- onnx/reference/ops/aionnxml/op_imputer.py +47 -0
- onnx/reference/ops/aionnxml/op_label_encoder.py +52 -0
- onnx/reference/ops/aionnxml/op_linear_classifier.py +99 -0
- onnx/reference/ops/aionnxml/op_linear_regressor.py +26 -0
- onnx/reference/ops/aionnxml/op_normalizer.py +41 -0
- onnx/reference/ops/aionnxml/op_one_hot_encoder.py +55 -0
- onnx/reference/ops/aionnxml/op_scaler.py +12 -0
- onnx/reference/ops/aionnxml/op_svm_classifier.py +334 -0
- onnx/reference/ops/aionnxml/op_svm_helper.py +99 -0
- onnx/reference/ops/aionnxml/op_svm_regressor.py +45 -0
- onnx/reference/ops/aionnxml/op_tree_ensemble_classifier.py +132 -0
- onnx/reference/ops/aionnxml/op_tree_ensemble_helper.py +109 -0
- onnx/reference/ops/aionnxml/op_tree_ensemble_regressor.py +105 -0
- onnx/reference/ops/experimental/__init__.py +3 -1
- onnx/reference/ops/experimental/_op_list.py +15 -36
- onnx/reference/ops/experimental/_op_run_experimental.py +2 -0
- onnx/reference/ops/experimental/op_im2col.py +3 -2
- onnx/reference/ops/op_abs.py +3 -1
- onnx/reference/ops/op_acos.py +3 -1
- onnx/reference/ops/op_acosh.py +3 -1
- onnx/reference/ops/op_add.py +3 -1
- onnx/reference/ops/op_and.py +3 -1
- onnx/reference/ops/op_argmax.py +4 -9
- onnx/reference/ops/op_argmin.py +4 -9
- onnx/reference/ops/op_asin.py +3 -1
- onnx/reference/ops/op_asinh.py +3 -1
- onnx/reference/ops/op_atan.py +3 -1
- onnx/reference/ops/op_atanh.py +3 -1
- onnx/reference/ops/op_attribute_has_value.py +2 -0
- onnx/reference/ops/op_average_pool.py +80 -2
- onnx/reference/ops/op_batch_normalization.py +14 -11
- onnx/reference/ops/op_bernoulli.py +3 -2
- onnx/reference/ops/op_bitshift.py +3 -1
- onnx/reference/ops/op_bitwise_and.py +3 -1
- onnx/reference/ops/op_bitwise_not.py +3 -1
- onnx/reference/ops/op_bitwise_or.py +3 -1
- onnx/reference/ops/op_bitwise_xor.py +3 -1
- onnx/reference/ops/op_blackman_window.py +3 -1
- onnx/reference/ops/op_cast.py +91 -10
- onnx/reference/ops/op_cast_like.py +32 -7
- onnx/reference/ops/op_ceil.py +3 -1
- onnx/reference/ops/op_celu.py +3 -1
- onnx/reference/ops/op_center_crop_pad.py +7 -3
- onnx/reference/ops/op_clip.py +2 -7
- onnx/reference/ops/op_col2im.py +3 -2
- onnx/reference/ops/op_compress.py +2 -0
- onnx/reference/ops/op_concat.py +6 -5
- onnx/reference/ops/op_concat_from_sequence.py +2 -0
- onnx/reference/ops/op_constant.py +46 -35
- onnx/reference/ops/op_constant_of_shape.py +4 -0
- onnx/reference/ops/op_conv.py +62 -39
- onnx/reference/ops/op_conv_integer.py +3 -2
- onnx/reference/ops/op_conv_transpose.py +4 -3
- onnx/reference/ops/op_cos.py +3 -1
- onnx/reference/ops/op_cosh.py +3 -1
- onnx/reference/ops/op_cum_sum.py +2 -0
- onnx/reference/ops/op_deform_conv.py +178 -0
- onnx/reference/ops/op_depth_to_space.py +2 -0
- onnx/reference/ops/op_dequantize_linear.py +72 -21
- onnx/reference/ops/op_det.py +3 -4
- onnx/reference/ops/op_dft.py +2 -0
- onnx/reference/ops/op_div.py +3 -1
- onnx/reference/ops/op_dropout.py +2 -7
- onnx/reference/ops/op_dynamic_quantize_linear.py +2 -0
- onnx/reference/ops/op_einsum.py +2 -0
- onnx/reference/ops/op_elu.py +4 -2
- onnx/reference/ops/op_equal.py +3 -1
- onnx/reference/ops/op_erf.py +3 -1
- onnx/reference/ops/op_exp.py +4 -2
- onnx/reference/ops/op_expand.py +2 -0
- onnx/reference/ops/op_eyelike.py +9 -4
- onnx/reference/ops/op_flatten.py +3 -1
- onnx/reference/ops/op_floor.py +3 -1
- onnx/reference/ops/op_gather.py +2 -0
- onnx/reference/ops/op_gather_elements.py +2 -0
- onnx/reference/ops/op_gathernd.py +3 -1
- onnx/reference/ops/op_gemm.py +5 -10
- onnx/reference/ops/op_global_average_pool.py +6 -5
- onnx/reference/ops/op_global_max_pool.py +2 -0
- onnx/reference/ops/op_greater.py +3 -1
- onnx/reference/ops/op_greater_or_equal.py +3 -1
- onnx/reference/ops/op_grid_sample.py +3 -1
- onnx/reference/ops/op_gru.py +4 -1
- onnx/reference/ops/op_hamming_window.py +3 -1
- onnx/reference/ops/op_hann_window.py +3 -1
- onnx/reference/ops/op_hard_sigmoid.py +3 -1
- onnx/reference/ops/op_hardmax.py +3 -1
- onnx/reference/ops/op_identity.py +3 -1
- onnx/reference/ops/op_if.py +16 -7
- onnx/reference/ops/op_instance_normalization.py +2 -0
- onnx/reference/ops/op_isinf.py +2 -0
- onnx/reference/ops/op_isnan.py +3 -1
- onnx/reference/ops/op_layer_normalization.py +2 -0
- onnx/reference/ops/op_leaky_relu.py +4 -2
- onnx/reference/ops/op_less.py +3 -1
- onnx/reference/ops/op_less_or_equal.py +3 -1
- onnx/reference/ops/op_log.py +4 -2
- onnx/reference/ops/op_log_softmax.py +3 -1
- onnx/reference/ops/op_loop.py +4 -2
- onnx/reference/ops/op_lp_normalization.py +4 -2
- onnx/reference/ops/op_lp_pool.py +41 -0
- onnx/reference/ops/op_lrn.py +9 -5
- onnx/reference/ops/op_lstm.py +4 -2
- onnx/reference/ops/op_matmul.py +3 -1
- onnx/reference/ops/op_matmul_integer.py +2 -0
- onnx/reference/ops/op_max.py +3 -1
- onnx/reference/ops/op_max_pool.py +3 -1
- onnx/reference/ops/op_max_unpool.py +2 -0
- onnx/reference/ops/op_mean.py +3 -1
- onnx/reference/ops/op_mel_weight_matrix.py +2 -0
- onnx/reference/ops/op_min.py +3 -1
- onnx/reference/ops/op_mod.py +2 -0
- onnx/reference/ops/op_mul.py +3 -1
- onnx/reference/ops/op_neg.py +3 -1
- onnx/reference/ops/op_negative_log_likelihood_loss.py +3 -1
- onnx/reference/ops/op_non_max_suppression.py +22 -19
- onnx/reference/ops/op_non_zero.py +4 -1
- onnx/reference/ops/op_not.py +3 -1
- onnx/reference/ops/op_one_hot.py +3 -1
- onnx/reference/ops/op_optional.py +2 -0
- onnx/reference/ops/op_optional_get_element.py +4 -8
- onnx/reference/ops/op_optional_has_element.py +3 -9
- onnx/reference/ops/op_or.py +3 -1
- onnx/reference/ops/op_pad.py +18 -29
- onnx/reference/ops/op_pow.py +2 -0
- onnx/reference/ops/op_prelu.py +4 -2
- onnx/reference/ops/op_qlinear_conv.py +3 -2
- onnx/reference/ops/op_qlinear_matmul.py +2 -0
- onnx/reference/ops/op_quantize_linear.py +100 -15
- onnx/reference/ops/op_random_normal.py +3 -1
- onnx/reference/ops/op_random_normal_like.py +3 -2
- onnx/reference/ops/op_random_uniform.py +3 -1
- onnx/reference/ops/op_random_uniform_like.py +3 -2
- onnx/reference/ops/op_range.py +2 -0
- onnx/reference/ops/op_reciprocal.py +4 -2
- onnx/reference/ops/op_reduce_l1.py +17 -31
- onnx/reference/ops/op_reduce_l2.py +17 -35
- onnx/reference/ops/op_reduce_log_sum.py +6 -29
- onnx/reference/ops/op_reduce_log_sum_exp.py +6 -29
- onnx/reference/ops/op_reduce_max.py +15 -36
- onnx/reference/ops/op_reduce_mean.py +15 -33
- onnx/reference/ops/op_reduce_min.py +15 -32
- onnx/reference/ops/op_reduce_prod.py +15 -29
- onnx/reference/ops/op_reduce_sum.py +17 -45
- onnx/reference/ops/op_reduce_sum_square.py +15 -29
- onnx/reference/ops/op_relu.py +3 -1
- onnx/reference/ops/op_reshape.py +2 -7
- onnx/reference/ops/op_resize.py +59 -26
- onnx/reference/ops/op_reverse_sequence.py +2 -0
- onnx/reference/ops/op_rnn.py +3 -7
- onnx/reference/ops/op_roi_align.py +7 -5
- onnx/reference/ops/op_round.py +4 -2
- onnx/reference/ops/op_scan.py +5 -2
- onnx/reference/ops/op_scatter_elements.py +17 -4
- onnx/reference/ops/op_scatternd.py +2 -0
- onnx/reference/ops/op_selu.py +5 -1
- onnx/reference/ops/op_sequence_at.py +2 -0
- onnx/reference/ops/op_sequence_construct.py +2 -0
- onnx/reference/ops/op_sequence_empty.py +2 -0
- onnx/reference/ops/op_sequence_erase.py +2 -0
- onnx/reference/ops/op_sequence_insert.py +4 -2
- onnx/reference/ops/op_sequence_length.py +7 -1
- onnx/reference/ops/op_sequence_map.py +4 -2
- onnx/reference/ops/op_shape.py +2 -7
- onnx/reference/ops/op_shrink.py +3 -1
- onnx/reference/ops/op_sigmoid.py +7 -1
- onnx/reference/ops/op_sign.py +3 -1
- onnx/reference/ops/op_sin.py +3 -1
- onnx/reference/ops/op_sinh.py +3 -1
- onnx/reference/ops/op_size.py +2 -0
- onnx/reference/ops/op_slice.py +3 -9
- onnx/reference/ops/op_softmax.py +4 -2
- onnx/reference/ops/op_softmax_cross_entropy_loss.py +4 -1
- onnx/reference/ops/op_softplus.py +4 -2
- onnx/reference/ops/op_softsign.py +3 -1
- onnx/reference/ops/op_space_to_depth.py +3 -1
- onnx/reference/ops/op_split.py +7 -9
- onnx/reference/ops/op_split_to_sequence.py +41 -10
- onnx/reference/ops/op_sqrt.py +4 -2
- onnx/reference/ops/op_squeeze.py +3 -12
- onnx/reference/ops/op_stft.py +8 -7
- onnx/reference/ops/op_string_normalizer.py +4 -3
- onnx/reference/ops/op_sub.py +3 -1
- onnx/reference/ops/op_sum.py +3 -1
- onnx/reference/ops/op_tan.py +3 -1
- onnx/reference/ops/op_tanh.py +3 -1
- onnx/reference/ops/op_tfidf_vectorizer.py +15 -13
- onnx/reference/ops/op_thresholded_relu.py +4 -2
- onnx/reference/ops/op_tile.py +2 -0
- onnx/reference/ops/op_topk.py +12 -19
- onnx/reference/ops/op_transpose.py +2 -0
- onnx/reference/ops/op_trilu.py +3 -1
- onnx/reference/ops/op_unique.py +2 -0
- onnx/reference/ops/op_unsqueeze.py +2 -9
- onnx/reference/ops/op_upsample.py +9 -8
- onnx/reference/ops/op_where.py +7 -1
- onnx/reference/ops/op_xor.py +3 -1
- onnx/reference/reference_evaluator.py +64 -20
- onnx/shape_inference/implementation.cc +204 -43
- onnx/shape_inference/implementation.h +33 -13
- onnx/shape_inference.py +37 -12
- onnx/string_utils.h +3 -3
- onnx/test/cpp/common_path_test.cc +2 -0
- onnx/test/cpp/data_propagation_test.cc +2 -0
- onnx/test/cpp/function_context_test.cc +2 -0
- onnx/test/cpp/function_get_test.cc +2 -0
- onnx/test/cpp/function_verify_test.cc +176 -0
- onnx/test/cpp/op_reg_test.cc +2 -0
- onnx/test/cpp/parser_test.cc +37 -1
- onnx/test/cpp/schema_registration_test.cc +2 -0
- onnx/test/cpp/shape_inference_test.cc +2 -0
- onnx/test/cpp/test_main.cc +2 -0
- onnx/tools/__init__.py +2 -0
- onnx/tools/net_drawer.py +13 -9
- onnx/tools/replace_constants.py +429 -0
- onnx/tools/update_model_dims.py +7 -9
- onnx/utils.py +16 -6
- onnx/version.py +2 -2
- onnx/version_converter/BaseConverter.h +2 -0
- onnx/version_converter/adapters/adapter.h +2 -0
- onnx/version_converter/adapters/axes_attribute_to_input.h +2 -0
- onnx/version_converter/adapters/axes_input_to_attribute.h +2 -0
- onnx/version_converter/adapters/batch_normalization_13_14.h +2 -0
- onnx/version_converter/adapters/broadcast_backward_compatibility.h +2 -0
- onnx/version_converter/adapters/broadcast_forward_compatibility.h +2 -0
- onnx/version_converter/adapters/cast_9_8.h +2 -0
- onnx/version_converter/adapters/clip_10_11.h +2 -0
- onnx/version_converter/adapters/compatible.h +2 -0
- onnx/version_converter/adapters/dropout_11_12.h +2 -0
- onnx/version_converter/adapters/extend_supported_types.h +2 -0
- onnx/version_converter/adapters/gemm_6_7.h +2 -0
- onnx/version_converter/adapters/gemm_7_6.h +2 -0
- onnx/version_converter/adapters/maxpool_8_7.h +2 -0
- onnx/version_converter/adapters/no_previous_version.h +2 -0
- onnx/version_converter/adapters/pad_10_11.h +4 -0
- onnx/version_converter/adapters/remove_consumed_inputs.h +2 -0
- onnx/version_converter/adapters/reshape_4_5.h +2 -0
- onnx/version_converter/adapters/reshape_5_4.h +2 -0
- onnx/version_converter/adapters/resize_10_11.h +2 -0
- onnx/version_converter/adapters/scan_8_9.h +2 -0
- onnx/version_converter/adapters/scan_9_8.h +2 -0
- onnx/version_converter/adapters/scatter_10_11.h +2 -0
- onnx/version_converter/adapters/slice_9_10.h +2 -0
- onnx/version_converter/adapters/softmax_12_13.h +20 -28
- onnx/version_converter/adapters/split_12_13.h +2 -0
- onnx/version_converter/adapters/split_13_12.h +2 -0
- onnx/version_converter/adapters/split_17_18.h +2 -0
- onnx/version_converter/adapters/sum_8_7.h +2 -0
- onnx/version_converter/adapters/topk_9_10.h +2 -0
- onnx/version_converter/adapters/transformers.h +3 -1
- onnx/version_converter/adapters/type_restriction.h +2 -0
- onnx/version_converter/adapters/upsample_6_7.h +2 -0
- onnx/version_converter/adapters/upsample_8_9.h +2 -0
- onnx/version_converter/adapters/upsample_9_10.h +2 -0
- onnx/version_converter/adapters/upsample_9_8.h +2 -0
- onnx/version_converter/convert.cc +14 -7
- onnx/version_converter/convert.h +20 -0
- onnx/version_converter/helper.cc +3 -3
- onnx/version_converter/helper.h +3 -3
- onnx/version_converter.py +6 -3
- {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/METADATA +96 -52
- {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/RECORD +1056 -743
- {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/WHEEL +1 -1
- onnx/backend/test/data/node/test_softplus_example_expanded/model.onnx +0 -0
- /onnx/backend/test/data/node/{test_softplus_example_expanded → test_softplus_example_expanded_ver18}/test_data_set_0/input_0.pb +0 -0
- /onnx/backend/test/data/node/{test_softplus_example_expanded → test_softplus_example_expanded_ver18}/test_data_set_0/output_0.pb +0 -0
- /onnx/backend/test/data/node/{test_softplus_expanded → test_softplus_expanded_ver18}/test_data_set_0/input_0.pb +0 -0
- /onnx/backend/test/data/node/{test_softplus_expanded → test_softplus_expanded_ver18}/test_data_set_0/output_0.pb +0 -0
- {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/LICENSE +0 -0
- {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/entry_points.txt +0 -0
- {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/top_level.txt +0 -0
onnx/helper.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# Copyright (c) ONNX Project Contributors
|
|
2
|
+
#
|
|
1
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
2
4
|
# pylint: disable=C0302,R0912
|
|
3
5
|
import collections.abc
|
|
@@ -69,6 +71,8 @@ VERSION_TABLE: VersionTableType = [
|
|
|
69
71
|
("1.12.0", 8, 17, 3, 1),
|
|
70
72
|
("1.13.0", 8, 18, 3, 1),
|
|
71
73
|
("1.13.1", 8, 18, 3, 1),
|
|
74
|
+
("1.14.0", 9, 19, 3, 1),
|
|
75
|
+
("1.14.1", 9, 19, 3, 1),
|
|
72
76
|
]
|
|
73
77
|
|
|
74
78
|
VersionMapType = Dict[Tuple[str, int], int]
|
|
@@ -76,9 +80,10 @@ VersionMapType = Dict[Tuple[str, int], int]
|
|
|
76
80
|
|
|
77
81
|
def create_op_set_id_version_map(table: VersionTableType) -> VersionMapType:
|
|
78
82
|
"""create a map from (opset-domain, opset-version) to ir-version from above table"""
|
|
79
|
-
result: VersionMapType =
|
|
83
|
+
result: VersionMapType = {}
|
|
80
84
|
|
|
81
85
|
def process(release_version: str, ir_version: int, *args: Any) -> None:
|
|
86
|
+
del release_version # Unused
|
|
82
87
|
for pair in zip(["ai.onnx", "ai.onnx.ml", "ai.onnx.training"], args):
|
|
83
88
|
if pair not in result:
|
|
84
89
|
result[pair] = ir_version
|
|
@@ -93,16 +98,26 @@ def create_op_set_id_version_map(table: VersionTableType) -> VersionMapType:
|
|
|
93
98
|
OP_SET_ID_VERSION_MAP = create_op_set_id_version_map(VERSION_TABLE)
|
|
94
99
|
|
|
95
100
|
|
|
96
|
-
def find_min_ir_version_for(
|
|
97
|
-
|
|
101
|
+
def find_min_ir_version_for(
|
|
102
|
+
opsetidlist: List[OperatorSetIdProto], ignore_unknown: bool = False
|
|
103
|
+
) -> int:
|
|
104
|
+
"""Given list of opset ids, determine minimum IR version required.
|
|
105
|
+
|
|
106
|
+
Arguments:
|
|
107
|
+
opsetidlist (List[OperatorSetIdProto]): The list of OperatorSetIdProto
|
|
108
|
+
ignore_unknown (bool): If True, ignore unknown domain and return default min version for that domain.
|
|
109
|
+
Returns:
|
|
110
|
+
The minimum IR version required (integer)
|
|
111
|
+
"""
|
|
98
112
|
default_min_version = 3
|
|
99
113
|
|
|
100
114
|
def find_min(domain: Union[str, None], version: int) -> int:
|
|
101
115
|
key = (domain if domain else "ai.onnx", version)
|
|
102
116
|
if key in OP_SET_ID_VERSION_MAP:
|
|
103
117
|
return OP_SET_ID_VERSION_MAP[key]
|
|
104
|
-
|
|
105
|
-
|
|
118
|
+
if ignore_unknown:
|
|
119
|
+
return default_min_version
|
|
120
|
+
raise ValueError("Unsupported opset-version.")
|
|
106
121
|
|
|
107
122
|
if opsetidlist:
|
|
108
123
|
return max(find_min(x.domain, x.version) for x in opsetidlist)
|
|
@@ -237,10 +252,13 @@ def make_function(
|
|
|
237
252
|
nodes: Sequence[NodeProto],
|
|
238
253
|
opset_imports: Sequence[OperatorSetIdProto],
|
|
239
254
|
attributes: Optional[Sequence[str]] = None,
|
|
255
|
+
attribute_protos: Optional[Sequence[AttributeProto]] = None,
|
|
240
256
|
doc_string: Optional[str] = None,
|
|
241
257
|
) -> FunctionProto:
|
|
242
258
|
if attributes is None:
|
|
243
259
|
attributes = []
|
|
260
|
+
if attribute_protos is None:
|
|
261
|
+
attribute_protos = []
|
|
244
262
|
f = FunctionProto()
|
|
245
263
|
f.domain = domain
|
|
246
264
|
f.name = fname
|
|
@@ -249,6 +267,7 @@ def make_function(
|
|
|
249
267
|
f.node.extend(nodes)
|
|
250
268
|
f.opset_import.extend(opset_imports)
|
|
251
269
|
f.attribute.extend(attributes)
|
|
270
|
+
f.attribute_proto.extend(attribute_protos)
|
|
252
271
|
if doc_string:
|
|
253
272
|
f.doc_string = doc_string
|
|
254
273
|
return f
|
|
@@ -311,7 +330,7 @@ def set_model_props(model: ModelProto, dict_value: Dict[str, str]) -> None:
|
|
|
311
330
|
|
|
312
331
|
def split_complex_to_pairs(ca: Sequence[np.complex64]) -> Sequence[int]:
|
|
313
332
|
return [
|
|
314
|
-
(ca[i // 2].real if (i % 2 == 0) else ca[i // 2].imag)
|
|
333
|
+
(ca[i // 2].real if (i % 2 == 0) else ca[i // 2].imag) # type: ignore[misc]
|
|
315
334
|
for i in range(len(ca) * 2)
|
|
316
335
|
]
|
|
317
336
|
|
|
@@ -331,8 +350,252 @@ def float32_to_bfloat16(fval: float, truncate: bool = False) -> int:
|
|
|
331
350
|
return 0x7FC0 # sign=0, exp=all-ones, sig=0b1000000
|
|
332
351
|
# drop bottom 16-bits
|
|
333
352
|
# round remaining bits using round-to-nearest-even
|
|
334
|
-
|
|
335
|
-
return (ival +
|
|
353
|
+
rounded = ((ival >> 16) & 1) + 0x7FFF
|
|
354
|
+
return (ival + rounded) >> 16
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
def float32_to_float8e4m3( # pylint: disable=too-many-statements
|
|
358
|
+
fval: float,
|
|
359
|
+
scale: float = 1.0,
|
|
360
|
+
fn: bool = True,
|
|
361
|
+
uz: bool = False,
|
|
362
|
+
saturate: bool = True,
|
|
363
|
+
) -> int:
|
|
364
|
+
"""
|
|
365
|
+
Convert a float32 value to a float8, e4m3 (as int).
|
|
366
|
+
|
|
367
|
+
:param fval: float to convert
|
|
368
|
+
:param scale: scale, divide *fval* by *scale* before casting it
|
|
369
|
+
:param fn: no infinite values
|
|
370
|
+
:param uz: no negative zero
|
|
371
|
+
:param saturate: if True, any value out of range included inf becomes the maximum value,
|
|
372
|
+
otherwise, it becomes NaN. The description of operator Cast fully describes the
|
|
373
|
+
differences.
|
|
374
|
+
:return: converted float
|
|
375
|
+
|
|
376
|
+
See :ref:`onnx-detail-float8` for technical details.
|
|
377
|
+
"""
|
|
378
|
+
if not fn:
|
|
379
|
+
raise NotImplementedError(
|
|
380
|
+
"float32_to_float8e4m3 not implemented with fn=False."
|
|
381
|
+
)
|
|
382
|
+
x = fval / scale
|
|
383
|
+
b = int.from_bytes(struct.pack("<f", np.float32(x)), "little")
|
|
384
|
+
ret = (b & 0x80000000) >> 24 # sign
|
|
385
|
+
if uz:
|
|
386
|
+
if (b & 0x7FC00000) == 0x7FC00000:
|
|
387
|
+
return 0x80
|
|
388
|
+
if np.isinf(x):
|
|
389
|
+
if saturate:
|
|
390
|
+
return ret | 0x7F
|
|
391
|
+
return 0x80
|
|
392
|
+
e = (b & 0x7F800000) >> 23 # exponent
|
|
393
|
+
m = b & 0x007FFFFF # mantissa
|
|
394
|
+
|
|
395
|
+
if e != 0:
|
|
396
|
+
if e < 116:
|
|
397
|
+
pass
|
|
398
|
+
elif e < 117:
|
|
399
|
+
ret |= 1
|
|
400
|
+
if (m >> 23) & 1:
|
|
401
|
+
# rounding
|
|
402
|
+
ret += 1
|
|
403
|
+
elif e < 120: # 127 - 8 + 1
|
|
404
|
+
d = 119 - e
|
|
405
|
+
ret |= 1 << (2 - d)
|
|
406
|
+
ret |= m >> (21 + d)
|
|
407
|
+
if (m >> (20 + d)) & 1:
|
|
408
|
+
# rounding
|
|
409
|
+
ret += 1
|
|
410
|
+
elif e < 135: # 127 + 8
|
|
411
|
+
ex = e - 119 # 127 - 8
|
|
412
|
+
if ex == 0:
|
|
413
|
+
ret |= 0x4
|
|
414
|
+
ret |= m >> 21
|
|
415
|
+
else:
|
|
416
|
+
ret |= ex << 3
|
|
417
|
+
ret |= m >> 20
|
|
418
|
+
if m & 0x80000:
|
|
419
|
+
if (ret & 0x7F) < 0x7F:
|
|
420
|
+
# rounding
|
|
421
|
+
ret += 1
|
|
422
|
+
elif not saturate:
|
|
423
|
+
return 0x80
|
|
424
|
+
elif saturate:
|
|
425
|
+
ret |= 0x7F # 01111110
|
|
426
|
+
else:
|
|
427
|
+
ret = 0x80
|
|
428
|
+
elif m == 0:
|
|
429
|
+
# -0
|
|
430
|
+
ret = 0
|
|
431
|
+
return int(ret)
|
|
432
|
+
else:
|
|
433
|
+
if (b & 0x7FC00000) == 0x7FC00000:
|
|
434
|
+
return 0x7F | ret
|
|
435
|
+
if np.isinf(x):
|
|
436
|
+
if saturate:
|
|
437
|
+
return ret | 126
|
|
438
|
+
return 0x7F | ret
|
|
439
|
+
e = (b & 0x7F800000) >> 23 # exponent
|
|
440
|
+
m = b & 0x007FFFFF # mantissa
|
|
441
|
+
|
|
442
|
+
if e != 0:
|
|
443
|
+
if e < 117:
|
|
444
|
+
pass
|
|
445
|
+
elif e < 118:
|
|
446
|
+
ret |= 1
|
|
447
|
+
if (m >> 23) & 1:
|
|
448
|
+
# rounding
|
|
449
|
+
ret += 1
|
|
450
|
+
elif e < 121: # 127 - 7 + 1
|
|
451
|
+
d = 120 - e
|
|
452
|
+
ret |= 1 << (2 - d)
|
|
453
|
+
ret |= m >> (21 + d)
|
|
454
|
+
if (m >> (20 + d)) & 1:
|
|
455
|
+
# rounding
|
|
456
|
+
ret += 1
|
|
457
|
+
elif e < 136: # 127 + 8 + 1
|
|
458
|
+
ex = e - 120 # 127 - 7
|
|
459
|
+
if ex == 0:
|
|
460
|
+
ret |= 0x4
|
|
461
|
+
ret |= m >> 21
|
|
462
|
+
else:
|
|
463
|
+
ret |= ex << 3
|
|
464
|
+
ret |= m >> 20
|
|
465
|
+
if (ret & 0x7F) == 0x7F:
|
|
466
|
+
ret &= 0xFE
|
|
467
|
+
if (m & 0x80000) and (
|
|
468
|
+
(m & 0x100000) or (m & 0x7C000)
|
|
469
|
+
): # round to nearest even
|
|
470
|
+
if (ret & 0x7F) < 0x7E:
|
|
471
|
+
# rounding
|
|
472
|
+
ret += 1
|
|
473
|
+
elif not saturate:
|
|
474
|
+
ret |= 0x7F
|
|
475
|
+
elif saturate:
|
|
476
|
+
ret |= 126 # 01111110
|
|
477
|
+
else:
|
|
478
|
+
ret |= 0x7F
|
|
479
|
+
return int(ret)
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
def float32_to_float8e5m2( # pylint: disable=too-many-statements
|
|
483
|
+
fval: float,
|
|
484
|
+
scale: float = 1.0,
|
|
485
|
+
fn: bool = False,
|
|
486
|
+
uz: bool = False,
|
|
487
|
+
saturate: bool = True,
|
|
488
|
+
) -> int:
|
|
489
|
+
"""
|
|
490
|
+
Convert a float32 value to a float8, e5m2 (as int).
|
|
491
|
+
|
|
492
|
+
:param fval: float to convert
|
|
493
|
+
:param scale: scale, divide *fval* by *scale* before casting it
|
|
494
|
+
:param fn: no infinite values
|
|
495
|
+
:param uz: no negative zero
|
|
496
|
+
:param saturate: if True, any value out of range included inf becomes the maximum value,
|
|
497
|
+
otherwise, it becomes NaN. The description of operator Cast fully describes the
|
|
498
|
+
differences.
|
|
499
|
+
:return: converted float
|
|
500
|
+
"""
|
|
501
|
+
x = fval / scale
|
|
502
|
+
b = int.from_bytes(struct.pack("<f", np.float32(x)), "little")
|
|
503
|
+
ret = (b & 0x80000000) >> 24 # sign
|
|
504
|
+
|
|
505
|
+
if fn and uz:
|
|
506
|
+
if (b & 0x7FC00000) == 0x7FC00000:
|
|
507
|
+
return 0x80
|
|
508
|
+
if (b & 0x7FFFFFFF) == 0x7F800000:
|
|
509
|
+
# inf
|
|
510
|
+
if saturate:
|
|
511
|
+
return ret | 0x7F
|
|
512
|
+
return 0x80
|
|
513
|
+
e = (b & 0x7F800000) >> 23 # exponent
|
|
514
|
+
m = b & 0x007FFFFF # mantissa
|
|
515
|
+
|
|
516
|
+
if e != 0:
|
|
517
|
+
if e < 109:
|
|
518
|
+
pass
|
|
519
|
+
elif e < 110:
|
|
520
|
+
ret |= 1
|
|
521
|
+
if (m >> 23) & 1:
|
|
522
|
+
# rounding
|
|
523
|
+
# may be unused
|
|
524
|
+
ret += 1
|
|
525
|
+
elif e < 112: # 127 - 16 + 1
|
|
526
|
+
d = 111 - e
|
|
527
|
+
ret |= 1 << (1 - d)
|
|
528
|
+
ret |= m >> (22 + d)
|
|
529
|
+
if (m >> (21 + d)) & 1:
|
|
530
|
+
# rounding
|
|
531
|
+
ret += 1
|
|
532
|
+
elif e < 143: # 127 + 15 + 1
|
|
533
|
+
ex = e - 111 # 127 - 16
|
|
534
|
+
ret |= ex << 2
|
|
535
|
+
ret |= m >> 21
|
|
536
|
+
if m & 0x100000:
|
|
537
|
+
if (ret & 0x7F) < 0x7F:
|
|
538
|
+
# rounding
|
|
539
|
+
ret += 1
|
|
540
|
+
elif not saturate:
|
|
541
|
+
ret = 0x80
|
|
542
|
+
elif e == 255 and m == 0: # inf
|
|
543
|
+
ret = 0x80
|
|
544
|
+
elif saturate:
|
|
545
|
+
ret |= 0x7F # last possible number
|
|
546
|
+
else:
|
|
547
|
+
ret = 0x80
|
|
548
|
+
elif m == 0:
|
|
549
|
+
# -0
|
|
550
|
+
ret = 0
|
|
551
|
+
return int(ret)
|
|
552
|
+
elif not fn and not uz:
|
|
553
|
+
if (b & 0x7FC00000) == 0x7FC00000:
|
|
554
|
+
return 0x7F | ret
|
|
555
|
+
if np.isinf(x):
|
|
556
|
+
if saturate:
|
|
557
|
+
return 0x7B | ret
|
|
558
|
+
return 0x7C | ret
|
|
559
|
+
e = (b & 0x7F800000) >> 23 # exponent
|
|
560
|
+
m = b & 0x007FFFFF # mantissa
|
|
561
|
+
|
|
562
|
+
if e != 0:
|
|
563
|
+
if e < 110:
|
|
564
|
+
pass
|
|
565
|
+
elif e < 111:
|
|
566
|
+
ret |= 1
|
|
567
|
+
if (m >> 23) & 1:
|
|
568
|
+
# rounding
|
|
569
|
+
# may be unused
|
|
570
|
+
ret += 1
|
|
571
|
+
elif e < 113: # 127 - 15 + 1
|
|
572
|
+
d = 112 - e
|
|
573
|
+
ret |= 1 << (1 - d)
|
|
574
|
+
ret |= m >> (22 + d)
|
|
575
|
+
if (m >> (21 + d)) & 1:
|
|
576
|
+
# rounding
|
|
577
|
+
ret += 1
|
|
578
|
+
elif e < 143: # 127 + 15 + 1
|
|
579
|
+
ex = e - 112 # 127 - 15
|
|
580
|
+
ret |= ex << 2
|
|
581
|
+
ret |= m >> 21
|
|
582
|
+
if (m & 0x100000) and (
|
|
583
|
+
(m & 0xFFFFF) or (m & 0x200000)
|
|
584
|
+
): # round to nearest even
|
|
585
|
+
if (ret & 0x7F) < 0x7B:
|
|
586
|
+
# rounding
|
|
587
|
+
ret += 1
|
|
588
|
+
elif saturate:
|
|
589
|
+
ret |= 0x7B
|
|
590
|
+
else:
|
|
591
|
+
ret |= 0x7C
|
|
592
|
+
elif saturate:
|
|
593
|
+
ret |= 0x7B
|
|
594
|
+
else:
|
|
595
|
+
ret |= 0x7C
|
|
596
|
+
return int(ret)
|
|
597
|
+
else:
|
|
598
|
+
raise NotImplementedError("fn and uz must be both False or True.")
|
|
336
599
|
|
|
337
600
|
|
|
338
601
|
def make_tensor(
|
|
@@ -360,8 +623,8 @@ def make_tensor(
|
|
|
360
623
|
tensor.data_type = data_type
|
|
361
624
|
tensor.name = name
|
|
362
625
|
|
|
363
|
-
if data_type == TensorProto.STRING:
|
|
364
|
-
|
|
626
|
+
if data_type == TensorProto.STRING and raw:
|
|
627
|
+
raise TypeError("Can not use raw_data to store string type.")
|
|
365
628
|
|
|
366
629
|
np_dtype = tensor_dtype_to_np_dtype(data_type)
|
|
367
630
|
|
|
@@ -372,34 +635,61 @@ def make_tensor(
|
|
|
372
635
|
# which has the wrong itemsize.
|
|
373
636
|
if data_type == TensorProto.BFLOAT16:
|
|
374
637
|
expected_size = 2
|
|
638
|
+
elif data_type in (
|
|
639
|
+
TensorProto.FLOAT8E4M3FN,
|
|
640
|
+
TensorProto.FLOAT8E4M3FNUZ,
|
|
641
|
+
TensorProto.FLOAT8E5M2,
|
|
642
|
+
TensorProto.FLOAT8E5M2FNUZ,
|
|
643
|
+
):
|
|
644
|
+
expected_size = 1
|
|
375
645
|
else:
|
|
376
646
|
expected_size = np_dtype.itemsize
|
|
377
647
|
|
|
378
|
-
if
|
|
648
|
+
if (
|
|
649
|
+
type(vals) is np.ndarray # pylint: disable=unidiomatic-typecheck
|
|
650
|
+
and len(vals.shape) > 1
|
|
651
|
+
):
|
|
379
652
|
vals = vals.flatten()
|
|
380
653
|
for d in dims:
|
|
381
654
|
expected_size *= d
|
|
382
655
|
|
|
383
656
|
if len(vals) != expected_size:
|
|
384
657
|
raise ValueError(
|
|
385
|
-
"Number of values does not match tensor's size. Expected {}, but it is {}. "
|
|
386
|
-
expected_size, len(vals)
|
|
387
|
-
)
|
|
658
|
+
f"Number of values does not match tensor's size. Expected {expected_size}, but it is {len(vals)}. "
|
|
388
659
|
)
|
|
389
660
|
|
|
390
661
|
if raw:
|
|
391
662
|
tensor.raw_data = vals
|
|
392
663
|
else:
|
|
393
|
-
if data_type
|
|
664
|
+
if data_type in (TensorProto.COMPLEX64, TensorProto.COMPLEX128):
|
|
394
665
|
vals = split_complex_to_pairs(vals)
|
|
395
666
|
elif data_type == TensorProto.FLOAT16:
|
|
396
667
|
vals = (
|
|
397
668
|
np.array(vals).astype(np_dtype).view(dtype=np.uint16).flatten().tolist()
|
|
398
669
|
)
|
|
399
|
-
elif data_type
|
|
670
|
+
elif data_type in (
|
|
671
|
+
TensorProto.BFLOAT16,
|
|
672
|
+
TensorProto.FLOAT8E4M3FN,
|
|
673
|
+
TensorProto.FLOAT8E4M3FNUZ,
|
|
674
|
+
TensorProto.FLOAT8E5M2,
|
|
675
|
+
TensorProto.FLOAT8E5M2FNUZ,
|
|
676
|
+
):
|
|
677
|
+
fcast = {
|
|
678
|
+
TensorProto.BFLOAT16: float32_to_bfloat16,
|
|
679
|
+
TensorProto.FLOAT8E4M3FN: float32_to_float8e4m3,
|
|
680
|
+
TensorProto.FLOAT8E4M3FNUZ: lambda *args: float32_to_float8e4m3( # type: ignore[misc]
|
|
681
|
+
*args, uz=True
|
|
682
|
+
),
|
|
683
|
+
TensorProto.FLOAT8E5M2: float32_to_float8e5m2,
|
|
684
|
+
TensorProto.FLOAT8E5M2FNUZ: lambda *args: float32_to_float8e5m2( # type: ignore[misc]
|
|
685
|
+
*args, fn=True, uz=True
|
|
686
|
+
),
|
|
687
|
+
}[
|
|
688
|
+
data_type # type: ignore[index]
|
|
689
|
+
]
|
|
400
690
|
vals = list(
|
|
401
|
-
map(
|
|
402
|
-
|
|
691
|
+
map( # type: ignore[call-overload]
|
|
692
|
+
fcast,
|
|
403
693
|
np.array(vals).astype(np_dtype).flatten().tolist(),
|
|
404
694
|
)
|
|
405
695
|
)
|
|
@@ -448,13 +738,13 @@ def make_sequence(
|
|
|
448
738
|
if elem_type == SequenceProto.TENSOR:
|
|
449
739
|
attribute = sequence.tensor_values
|
|
450
740
|
elif elem_type == SequenceProto.SPARSE_TENSOR:
|
|
451
|
-
attribute = sequence.sparse_tensor_values
|
|
741
|
+
attribute = sequence.sparse_tensor_values # type: ignore[assignment]
|
|
452
742
|
elif elem_type == SequenceProto.SEQUENCE:
|
|
453
|
-
attribute = sequence.sequence_values
|
|
743
|
+
attribute = sequence.sequence_values # type: ignore[assignment]
|
|
454
744
|
elif elem_type == SequenceProto.MAP:
|
|
455
|
-
attribute = sequence.map_values
|
|
745
|
+
attribute = sequence.map_values # type: ignore[assignment]
|
|
456
746
|
elif elem_type == OptionalProto.OPTIONAL:
|
|
457
|
-
attribute = sequence.optional_values
|
|
747
|
+
attribute = sequence.optional_values # type: ignore[assignment]
|
|
458
748
|
else:
|
|
459
749
|
raise TypeError("The element type in the input sequence is not supported.")
|
|
460
750
|
|
|
@@ -473,7 +763,7 @@ def make_map(
|
|
|
473
763
|
- Every key in keys must be of the same type
|
|
474
764
|
- Every value in values must be of the same type
|
|
475
765
|
"""
|
|
476
|
-
|
|
766
|
+
map_proto = MapProto()
|
|
477
767
|
valid_key_int_types = [
|
|
478
768
|
TensorProto.INT8,
|
|
479
769
|
TensorProto.INT16,
|
|
@@ -484,14 +774,14 @@ def make_map(
|
|
|
484
774
|
TensorProto.UINT32,
|
|
485
775
|
TensorProto.UINT64,
|
|
486
776
|
]
|
|
487
|
-
|
|
488
|
-
|
|
777
|
+
map_proto.name = name
|
|
778
|
+
map_proto.key_type = key_type
|
|
489
779
|
if key_type == TensorProto.STRING:
|
|
490
|
-
|
|
780
|
+
map_proto.string_keys.extend(keys)
|
|
491
781
|
elif key_type in valid_key_int_types:
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
return
|
|
782
|
+
map_proto.keys.extend(keys)
|
|
783
|
+
map_proto.values.CopyFrom(values)
|
|
784
|
+
return map_proto
|
|
495
785
|
|
|
496
786
|
|
|
497
787
|
def make_optional(
|
|
@@ -511,38 +801,26 @@ def make_optional(
|
|
|
511
801
|
if elem_type == OptionalProto.TENSOR:
|
|
512
802
|
attribute = optional.tensor_value
|
|
513
803
|
elif elem_type == OptionalProto.SPARSE_TENSOR:
|
|
514
|
-
attribute = optional.sparse_tensor_value
|
|
804
|
+
attribute = optional.sparse_tensor_value # type: ignore[assignment]
|
|
515
805
|
elif elem_type == OptionalProto.SEQUENCE:
|
|
516
|
-
attribute = optional.sequence_value
|
|
806
|
+
attribute = optional.sequence_value # type: ignore[assignment]
|
|
517
807
|
elif elem_type == OptionalProto.MAP:
|
|
518
|
-
attribute = optional.map_value
|
|
808
|
+
attribute = optional.map_value # type: ignore[assignment]
|
|
519
809
|
elif elem_type == OptionalProto.OPTIONAL:
|
|
520
|
-
attribute = optional.optional_value
|
|
810
|
+
attribute = optional.optional_value # type: ignore[assignment]
|
|
521
811
|
else:
|
|
522
812
|
raise TypeError("The element type in the input optional is not supported.")
|
|
523
813
|
|
|
524
|
-
attribute.CopyFrom(value)
|
|
814
|
+
attribute.CopyFrom(value) # type: ignore[arg-type]
|
|
525
815
|
return optional
|
|
526
816
|
|
|
527
817
|
|
|
528
|
-
def
|
|
529
|
-
"""
|
|
530
|
-
|
|
531
|
-
The criteria for conversion is as follows and should be python 2 and 3
|
|
532
|
-
compatible:
|
|
533
|
-
- If val is py2 str or py3 bytes: return bytes
|
|
534
|
-
- If val is py2 unicode or py3 str: return val.decode('utf-8')
|
|
535
|
-
- Otherwise, return False
|
|
536
|
-
"""
|
|
537
|
-
if isinstance(val, bytes):
|
|
538
|
-
return val
|
|
539
|
-
try:
|
|
540
|
-
return val.encode("utf-8")
|
|
541
|
-
except AttributeError:
|
|
542
|
-
return False
|
|
818
|
+
def _to_bytes(value: Union[str, bytes]) -> bytes:
|
|
819
|
+
"""Coerce a string (or bytes) value into UTF-8 bytes."""
|
|
820
|
+
return value if isinstance(value, bytes) else value.encode("utf-8")
|
|
543
821
|
|
|
544
822
|
|
|
545
|
-
def make_attribute(
|
|
823
|
+
def make_attribute( # pylint: disable=too-many-statements
|
|
546
824
|
key: str, value: Any, doc_string: Optional[str] = None
|
|
547
825
|
) -> AttributeProto:
|
|
548
826
|
"""Makes an AttributeProto based on the value type."""
|
|
@@ -551,21 +829,16 @@ def make_attribute(
|
|
|
551
829
|
if doc_string:
|
|
552
830
|
attr.doc_string = doc_string
|
|
553
831
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
# float
|
|
558
|
-
if isinstance(value, float):
|
|
559
|
-
attr.f = value
|
|
560
|
-
attr.type = AttributeProto.FLOAT
|
|
561
|
-
# integer
|
|
562
|
-
elif isinstance(value, numbers.Integral):
|
|
563
|
-
attr.i = cast(int, value)
|
|
832
|
+
# Singular cases
|
|
833
|
+
if isinstance(value, numbers.Integral):
|
|
834
|
+
attr.i = int(value)
|
|
564
835
|
attr.type = AttributeProto.INT
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
836
|
+
elif isinstance(value, numbers.Real):
|
|
837
|
+
attr.f = float(value)
|
|
838
|
+
attr.type = AttributeProto.FLOAT
|
|
839
|
+
elif isinstance(value, (str, bytes)):
|
|
840
|
+
# Encode strings into utf-8
|
|
841
|
+
attr.s = _to_bytes(value)
|
|
569
842
|
attr.type = AttributeProto.STRING
|
|
570
843
|
elif isinstance(value, TensorProto):
|
|
571
844
|
attr.t.CopyFrom(value)
|
|
@@ -579,42 +852,37 @@ def make_attribute(
|
|
|
579
852
|
elif isinstance(value, TypeProto):
|
|
580
853
|
attr.tp.CopyFrom(value)
|
|
581
854
|
attr.type = AttributeProto.TYPE_PROTO
|
|
582
|
-
#
|
|
583
|
-
elif
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
attr.ints.extend(
|
|
855
|
+
# Iterable cases
|
|
856
|
+
elif isinstance(value, collections.abc.Iterable):
|
|
857
|
+
value = list(value)
|
|
858
|
+
types = {type(v) for v in value}
|
|
859
|
+
if all(issubclass(t, numbers.Integral) for t in types):
|
|
860
|
+
attr.ints.extend(value)
|
|
588
861
|
attr.type = AttributeProto.INTS
|
|
589
|
-
elif all(
|
|
590
|
-
|
|
591
|
-
# (and converts the ints to floats).
|
|
592
|
-
attr.floats.extend(float(v) for v in value)
|
|
862
|
+
elif all(issubclass(t, numbers.Real) for t in types):
|
|
863
|
+
attr.floats.extend(value)
|
|
593
864
|
attr.type = AttributeProto.FLOATS
|
|
594
|
-
elif all(
|
|
595
|
-
attr.strings.extend(
|
|
865
|
+
elif all(issubclass(t, (str, bytes)) for t in types):
|
|
866
|
+
attr.strings.extend(_to_bytes(v) for v in value)
|
|
596
867
|
attr.type = AttributeProto.STRINGS
|
|
597
|
-
elif all(
|
|
868
|
+
elif all(issubclass(t, TensorProto) for t in types):
|
|
598
869
|
attr.tensors.extend(value)
|
|
599
870
|
attr.type = AttributeProto.TENSORS
|
|
600
|
-
elif all(
|
|
871
|
+
elif all(issubclass(t, SparseTensorProto) for t in types):
|
|
601
872
|
attr.sparse_tensors.extend(value)
|
|
602
873
|
attr.type = AttributeProto.SPARSE_TENSORS
|
|
603
|
-
elif all(
|
|
874
|
+
elif all(issubclass(t, GraphProto) for t in types):
|
|
604
875
|
attr.graphs.extend(value)
|
|
605
876
|
attr.type = AttributeProto.GRAPHS
|
|
606
|
-
elif all(
|
|
877
|
+
elif all(issubclass(t, TypeProto) for t in types):
|
|
607
878
|
attr.type_protos.extend(value)
|
|
608
879
|
attr.type = AttributeProto.TYPE_PROTOS
|
|
609
880
|
else:
|
|
610
881
|
raise ValueError(
|
|
611
|
-
"
|
|
612
|
-
"its applicable type."
|
|
882
|
+
"Could not infer the attribute type from the elements of the passed Iterable value."
|
|
613
883
|
)
|
|
614
884
|
else:
|
|
615
|
-
raise TypeError(
|
|
616
|
-
f'value "{value}" is not valid attribute data type.' # noqa: B907
|
|
617
|
-
)
|
|
885
|
+
raise TypeError(f"'{value}' is not an accepted attribute value.")
|
|
618
886
|
return attr
|
|
619
887
|
|
|
620
888
|
|
|
@@ -664,6 +932,15 @@ def get_attribute_value(attr: AttributeProto) -> Any:
|
|
|
664
932
|
raise ValueError(f"Unsupported ONNX attribute: {attr}")
|
|
665
933
|
|
|
666
934
|
|
|
935
|
+
def get_node_attr_value(node: NodeProto, attr_name: str) -> Any:
|
|
936
|
+
matching = [x for x in node.attribute if x.name == attr_name]
|
|
937
|
+
if len(matching) > 1:
|
|
938
|
+
raise ValueError(f"Node has multiple attributes with name {attr_name}")
|
|
939
|
+
if len(matching) < 1:
|
|
940
|
+
raise ValueError(f"Node has no attribute with name {attr_name}")
|
|
941
|
+
return get_attribute_value(matching[0])
|
|
942
|
+
|
|
943
|
+
|
|
667
944
|
def make_empty_tensor_value_info(name: str) -> ValueInfoProto:
|
|
668
945
|
value_info_proto = ValueInfoProto()
|
|
669
946
|
value_info_proto.name = name
|
|
@@ -692,11 +969,10 @@ def make_tensor_type_proto(
|
|
|
692
969
|
# an empty shape!
|
|
693
970
|
tensor_shape_proto.dim.extend([])
|
|
694
971
|
|
|
695
|
-
if shape_denotation:
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
)
|
|
972
|
+
if shape_denotation and len(shape_denotation) != len(shape):
|
|
973
|
+
raise ValueError(
|
|
974
|
+
"Invalid shape_denotation. Must be of the same length as shape."
|
|
975
|
+
)
|
|
700
976
|
|
|
701
977
|
for i, d in enumerate(shape):
|
|
702
978
|
dim = tensor_shape_proto.dim.add()
|
|
@@ -757,11 +1033,10 @@ def make_sparse_tensor_type_proto(
|
|
|
757
1033
|
# an empty shape!
|
|
758
1034
|
sparse_tensor_shape_proto.dim.extend([])
|
|
759
1035
|
|
|
760
|
-
if shape_denotation:
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
)
|
|
1036
|
+
if shape_denotation and len(shape_denotation) != len(shape):
|
|
1037
|
+
raise ValueError(
|
|
1038
|
+
"Invalid shape_denotation. Must be of the same length as shape."
|
|
1039
|
+
)
|
|
765
1040
|
|
|
766
1041
|
for i, d in enumerate(shape):
|
|
767
1042
|
dim = sparse_tensor_shape_proto.dim.add()
|
|
@@ -846,7 +1121,7 @@ def _sanitize_str(s: Union[str, bytes]) -> str:
|
|
|
846
1121
|
sanitized = str(s)
|
|
847
1122
|
if len(sanitized) < 64:
|
|
848
1123
|
return sanitized
|
|
849
|
-
return sanitized[:64] + "...<+len
|
|
1124
|
+
return sanitized[:64] + f"...<+len={(len(sanitized) - 64)}>"
|
|
850
1125
|
|
|
851
1126
|
|
|
852
1127
|
def make_tensor_sequence_value_info(
|
|
@@ -885,7 +1160,7 @@ def printable_attribute(
|
|
|
885
1160
|
def str_int(i: int) -> str:
|
|
886
1161
|
return str(i)
|
|
887
1162
|
|
|
888
|
-
_T = TypeVar("_T")
|
|
1163
|
+
_T = TypeVar("_T")
|
|
889
1164
|
|
|
890
1165
|
def str_list(str_elem: Callable[[_T], str], xs: Sequence[_T]) -> str:
|
|
891
1166
|
return "[" + ", ".join(map(str_elem, xs)) + "]"
|
|
@@ -942,13 +1217,13 @@ def printable_attribute(
|
|
|
942
1217
|
content.append("<Unknown>")
|
|
943
1218
|
if subgraphs:
|
|
944
1219
|
return " ".join(content), graphs
|
|
945
|
-
|
|
946
|
-
return " ".join(content)
|
|
1220
|
+
return " ".join(content)
|
|
947
1221
|
|
|
948
1222
|
|
|
949
1223
|
def printable_dim(dim: TensorShapeProto.Dimension) -> str:
|
|
950
1224
|
which = dim.WhichOneof("value")
|
|
951
|
-
|
|
1225
|
+
if which is None:
|
|
1226
|
+
raise TypeError(f"which cannot be {None}.")
|
|
952
1227
|
return str(getattr(dim, which))
|
|
953
1228
|
|
|
954
1229
|
|
|
@@ -998,12 +1273,16 @@ def printable_node(
|
|
|
998
1273
|
for attr in node.attribute:
|
|
999
1274
|
if subgraphs:
|
|
1000
1275
|
printed_attr_subgraphs = printable_attribute(attr, subgraphs)
|
|
1001
|
-
|
|
1276
|
+
if not isinstance(printed_attr_subgraphs[1], list):
|
|
1277
|
+
raise TypeError(
|
|
1278
|
+
f"printed_attr_subgraphs[1] must be an instance of {list}."
|
|
1279
|
+
)
|
|
1002
1280
|
graphs.extend(printed_attr_subgraphs[1])
|
|
1003
1281
|
printed_attrs.append(printed_attr_subgraphs[0])
|
|
1004
1282
|
else:
|
|
1005
1283
|
printed = printable_attribute(attr)
|
|
1006
|
-
|
|
1284
|
+
if not isinstance(printed, str):
|
|
1285
|
+
raise TypeError(f"printed must be an instance of {str}.")
|
|
1007
1286
|
printed_attrs.append(printed)
|
|
1008
1287
|
printed_attributes = ", ".join(sorted(printed_attrs))
|
|
1009
1288
|
printed_inputs = ", ".join([f"%{name}" for name in node.input])
|
|
@@ -1013,8 +1292,7 @@ def printable_node(
|
|
|
1013
1292
|
content.append(f"{node.op_type}({printed_inputs})")
|
|
1014
1293
|
if subgraphs:
|
|
1015
1294
|
return prefix + " ".join(content), graphs
|
|
1016
|
-
|
|
1017
|
-
return prefix + " ".join(content)
|
|
1295
|
+
return prefix + " ".join(content)
|
|
1018
1296
|
|
|
1019
1297
|
|
|
1020
1298
|
def printable_graph(graph: GraphProto, prefix: str = "") -> str:
|
|
@@ -1081,7 +1359,8 @@ def printable_graph(graph: GraphProto, prefix: str = "") -> str:
|
|
|
1081
1359
|
# body
|
|
1082
1360
|
for node in graph.node:
|
|
1083
1361
|
contents_subgraphs = printable_node(node, indent, subgraphs=True)
|
|
1084
|
-
|
|
1362
|
+
if not isinstance(contents_subgraphs[1], list):
|
|
1363
|
+
raise TypeError(f"contents_subgraphs[1] must be an instance of {list}.")
|
|
1085
1364
|
content.append(contents_subgraphs[0])
|
|
1086
1365
|
graphs.extend(contents_subgraphs[1])
|
|
1087
1366
|
# tail
|
|
@@ -1100,7 +1379,10 @@ def strip_doc_string(proto: google.protobuf.message.Message) -> None:
|
|
|
1100
1379
|
"""
|
|
1101
1380
|
Empties `doc_string` field on any nested protobuf messages
|
|
1102
1381
|
"""
|
|
1103
|
-
|
|
1382
|
+
if not isinstance(proto, google.protobuf.message.Message):
|
|
1383
|
+
raise TypeError(
|
|
1384
|
+
f"proto must be an instance of {google.protobuf.message.Message}."
|
|
1385
|
+
)
|
|
1104
1386
|
for descriptor in proto.DESCRIPTOR.fields:
|
|
1105
1387
|
if descriptor.name == "doc_string":
|
|
1106
1388
|
proto.ClearField(descriptor.name)
|
|
@@ -1174,7 +1456,7 @@ def tensor_dtype_to_field(tensor_dtype: int) -> str:
|
|
|
1174
1456
|
:param tensor_dtype: TensorProto's data_type
|
|
1175
1457
|
:return: field name
|
|
1176
1458
|
"""
|
|
1177
|
-
return mapping._STORAGE_TENSOR_TYPE_TO_FIELD[
|
|
1459
|
+
return mapping._STORAGE_TENSOR_TYPE_TO_FIELD[ # pylint: disable=protected-access
|
|
1178
1460
|
mapping.TENSOR_TYPE_MAP[tensor_dtype].storage_dtype
|
|
1179
1461
|
]
|
|
1180
1462
|
|
|
@@ -1186,7 +1468,10 @@ def np_dtype_to_tensor_dtype(np_dtype: np.dtype) -> int:
|
|
|
1186
1468
|
:param np_dtype: numpy's data_type
|
|
1187
1469
|
:return: TensorsProto's data_type
|
|
1188
1470
|
"""
|
|
1189
|
-
return cast(
|
|
1471
|
+
return cast(
|
|
1472
|
+
int,
|
|
1473
|
+
mapping._NP_TYPE_TO_TENSOR_TYPE[np_dtype], # pylint: disable=protected-access
|
|
1474
|
+
)
|
|
1190
1475
|
|
|
1191
1476
|
|
|
1192
1477
|
def get_all_tensor_dtypes() -> KeysView[int]:
|