onnx 1.15.0__cp311-cp311-win_amd64.whl → 1.16.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of onnx might be problematic. Click here for more details.
- onnx/__init__.py +10 -10
- onnx/backend/base.py +13 -14
- onnx/backend/sample/ops/abs.py +1 -1
- onnx/backend/test/case/model/__init__.py +0 -1
- onnx/backend/test/case/node/ai_onnx_ml/tree_ensemble.py +122 -0
- onnx/backend/test/case/node/averagepool.py +15 -30
- onnx/backend/test/case/node/cast.py +88 -11
- onnx/backend/test/case/node/dequantizelinear.py +155 -0
- onnx/backend/test/case/node/groupnormalization.py +13 -9
- onnx/backend/test/case/node/gru.py +2 -2
- onnx/backend/test/case/node/isinf.py +4 -4
- onnx/backend/test/case/node/isnan.py +2 -2
- onnx/backend/test/case/node/lppool.py +8 -16
- onnx/backend/test/case/node/lstm.py +1 -1
- onnx/backend/test/case/node/maxpool.py +40 -34
- onnx/backend/test/case/node/pow.py +1 -1
- onnx/backend/test/case/node/qlinearmatmul.py +143 -109
- onnx/backend/test/case/node/quantizelinear.py +298 -7
- onnx/backend/test/case/node/reducemax.py +26 -0
- onnx/backend/test/case/node/rnn.py +1 -1
- onnx/backend/test/case/node/scan.py +6 -2
- onnx/backend/test/case/node/scatterelements.py +1 -1
- onnx/backend/test/case/node/topk.py +1 -1
- onnx/backend/test/case/utils.py +1 -3
- onnx/backend/test/data/node/test_ai_onnx_ml_tree_ensemble_set_membership/model.onnx +0 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_tree_ensemble_set_membership/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_tree_ensemble_set_membership/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_tree_ensemble_single_tree/model.onnx +0 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_tree_ensemble_single_tree/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_ai_onnx_ml_tree_ensemble_single_tree/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 -2
- 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 -2
- 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 -2
- 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 -2
- 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_FLOAT16_to_INT4/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_INT4/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_INT4/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_UINT4/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_UINT4/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_UINT4/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_INT4/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_INT4/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_INT4/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_UINT4/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_UINT4/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_UINT4/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT16/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_INT8/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_INT8/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_cast_INT4_to_INT8/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_UINT8/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_UINT8/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_UINT8/test_data_set_0/output_0.pb +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 -2
- 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 -2
- 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 -2
- 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 -2
- 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_expanded/model.onnx +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_expanded/model.onnx +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_expanded/model.onnx +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_expanded/model.onnx +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_FLOAT8E4M3FNUZ/model.onnx +0 -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_FLOAT8E4M3FN_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/model.onnx +0 -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_expanded/model.onnx +0 -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_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_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_constantofshape_float_ones/model.onnx +0 -0
- onnx/backend/test/data/node/test_constantofshape_int_shape_zero/model.onnx +0 -0
- onnx/backend/test/data/node/test_constantofshape_int_zeros/model.onnx +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_blocked/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_blocked/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_dequantizelinear_blocked/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_blocked/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_blocked/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn_float16/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn_zero_point/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e5m2/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int16/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int16/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_dequantizelinear_int16/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int16/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int4/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int4/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_dequantizelinear_int4/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int4/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_dequantizelinear_int4/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint16/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint16/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint16/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint16/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint4/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint4/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint4/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint4/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint4/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_flatten_axis0/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_axis1/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_axis2/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_axis3/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_default_axis/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_negative_axis1/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_negative_axis2/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_negative_axis3/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_negative_axis4/model.onnx +0 -0
- onnx/backend/test/data/node/test_group_normalization_epsilon/model.onnx +0 -0
- onnx/backend/test/data/node/test_group_normalization_epsilon/test_data_set_0/input_0.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_epsilon/test_data_set_0/input_1.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_epsilon/test_data_set_0/input_2.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_epsilon/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_group_normalization_epsilon_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_group_normalization_epsilon_expanded/test_data_set_0/input_0.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_epsilon_expanded/test_data_set_0/input_1.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_epsilon_expanded/test_data_set_0/input_2.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_epsilon_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_group_normalization_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_group_normalization_example/test_data_set_0/input_1.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_example/test_data_set_0/input_2.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_example/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_group_normalization_example_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_group_normalization_example_expanded/test_data_set_0/input_1.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_example_expanded/test_data_set_0/input_2.pb +1 -1
- onnx/backend/test/data/node/test_group_normalization_example_expanded/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_lrn_default/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_ceil_output_size_reduce_by_one/model.onnx +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_ceil_output_size_reduce_by_one/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_maxpool_2d_ceil_output_size_reduce_by_one/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_mvn/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_mvn_expanded_ver18/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_pow/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/model.onnx +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/input_1.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/input_4.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/input_5.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/input_6.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/input_7.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float16/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float32/model.onnx +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float32/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float32/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float32/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float32/test_data_set_0/input_5.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float32/test_data_set_0/input_7.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_int8_float32/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_uint8_float16/model.onnx +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_uint8_float16/test_data_set_0/input_1.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_uint8_float16/test_data_set_0/input_4.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_uint8_float16/test_data_set_0/input_6.pb +2 -0
- onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_uint8_float32}/model.onnx +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_uint8_float32/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_uint8_float32/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_2D_uint8_float32/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/model.onnx +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/input_1.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/input_4.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/input_5.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/input_6.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/input_7.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float16/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/model.onnx +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/input_4.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/input_5.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/input_6.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/input_7.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_int8_float32/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float16/model.onnx +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float16/test_data_set_0/input_1.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float16/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float16/test_data_set_0/input_4.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float16/test_data_set_0/input_5.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float16/test_data_set_0/input_6.pb +2 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float16/test_data_set_0/input_7.pb +1 -0
- onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_3D_uint8_float32}/model.onnx +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/input_4.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/input_5.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/input_6.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/input_7.pb +1 -0
- onnx/backend/test/data/node/test_qlinearmatmul_3D_uint8_float32/test_data_set_0/output_0.pb +1 -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_blocked_asymmetric/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_asymmetric/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_asymmetric/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_asymmetric/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_asymmetric/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_symmetric/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_symmetric/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_symmetric/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_symmetric/test_data_set_0/output_0.pb +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_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_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_quantizelinear_int16/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int16/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int16/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int16/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int4/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int4/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int4/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int4/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_quantizelinear_int4/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_quantizelinear_uint16/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint16/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint16/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint16/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_quantizelinear_uint16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint4/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint4/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint4/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint4/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_quantizelinear_uint4/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_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_size/model.onnx +0 -0
- onnx/backend/test/data/node/test_size_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_squeeze/model.onnx +0 -0
- onnx/backend/test/data/node/test_squeeze_negative_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_0/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_3/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_4/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_5/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_axis_0/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_axis_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_axis_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_negative_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_three_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_two_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_wrap_pad/model.onnx +0 -0
- onnx/backend/test/loader/__init__.py +0 -1
- onnx/backend/test/runner/__init__.py +43 -15
- onnx/checker.cc +104 -99
- onnx/checker.h +23 -3
- onnx/checker.py +56 -20
- onnx/common/assertions.cc +10 -5
- onnx/common/common.h +19 -0
- onnx/common/file_utils.h +3 -1
- onnx/common/interned_strings.h +7 -1
- onnx/common/ir.h +30 -7
- onnx/common/ir_pb_converter.cc +6 -0
- onnx/common/path.h +18 -2
- onnx/common/proto_util.h +43 -0
- onnx/common/version.h +1 -1
- onnx/cpp2py_export.cc +88 -56
- onnx/defs/__init__.py +29 -8
- onnx/defs/controlflow/defs.cc +16 -16
- onnx/defs/controlflow/old.cc +177 -0
- onnx/defs/data_propagators.h +2 -0
- onnx/defs/data_type_utils.cc +2 -0
- onnx/defs/generator/defs.cc +6 -4
- onnx/defs/generator/old.cc +115 -0
- onnx/defs/math/defs.cc +37 -142
- onnx/defs/math/old.cc +96 -12
- onnx/defs/math/utils.cc +127 -0
- onnx/defs/math/utils.h +8 -0
- onnx/defs/nn/defs.cc +72 -59
- onnx/defs/nn/old.cc +181 -2
- onnx/defs/object_detection/defs.cc +2 -2
- onnx/defs/object_detection/old.cc +2 -2
- onnx/defs/operator_sets.h +51 -0
- onnx/defs/operator_sets_ml.h +14 -0
- onnx/defs/parser.cc +112 -54
- onnx/defs/parser.h +14 -2
- onnx/defs/printer.cc +14 -7
- onnx/defs/quantization/defs.cc +111 -44
- onnx/defs/quantization/old.cc +130 -1
- onnx/defs/schema.cc +62 -18
- onnx/defs/schema.h +194 -48
- onnx/defs/shape_inference.cc +28 -19
- onnx/defs/shape_inference.h +2 -0
- onnx/defs/tensor/defs.cc +54 -96
- onnx/defs/tensor/old.cc +939 -34
- onnx/defs/tensor/utils.cc +6 -3
- onnx/defs/tensor/utils.h +5 -1
- onnx/defs/tensor_proto_util.cc +2 -0
- onnx/defs/tensor_util.cc +2 -0
- onnx/defs/traditionalml/defs.cc +273 -117
- onnx/defs/traditionalml/old.cc +329 -14
- onnx/defs/traditionalml/utils.h +27 -0
- onnx/external_data_helper.py +12 -26
- onnx/helper.py +242 -169
- onnx/hub.py +104 -70
- onnx/inliner/inliner.cc +89 -31
- onnx/inliner/inliner.h +5 -0
- onnx/inliner.py +2 -0
- onnx/mapping.py +9 -0
- onnx/model_container.py +346 -0
- onnx/numpy_helper.py +100 -38
- onnx/onnx-ml.proto +50 -13
- onnx/onnx.in.proto +50 -13
- onnx/onnx.proto +50 -13
- onnx/onnx_cpp2py_export/__init__.pyi +5 -0
- onnx/onnx_cpp2py_export/checker.pyi +21 -0
- onnx/onnx_cpp2py_export/defs.pyi +202 -0
- onnx/onnx_cpp2py_export/inliner.pyi +19 -0
- onnx/onnx_cpp2py_export/parser.pyi +32 -0
- onnx/onnx_cpp2py_export/printer.pyi +3 -0
- onnx/onnx_cpp2py_export/shape_inference.pyi +16 -0
- onnx/onnx_cpp2py_export/version_converter.pyi +4 -0
- onnx/onnx_cpp2py_export.cp311-win_amd64.pyd +0 -0
- onnx/onnx_data_pb2.pyi +146 -0
- onnx/onnx_ml_pb2.py +52 -52
- onnx/onnx_ml_pb2.pyi +663 -0
- onnx/onnx_operators_ml_pb2.pyi +67 -0
- onnx/reference/__init__.py +2 -0
- onnx/reference/custom_element_types.py +2 -0
- onnx/reference/op_run.py +166 -121
- onnx/reference/ops/_op.py +27 -50
- onnx/reference/ops/_op_list.py +36 -24
- onnx/reference/ops/aionnx_preview_training/_op_list.py +15 -8
- onnx/reference/ops/aionnxml/_common_classifier.py +3 -5
- onnx/reference/ops/aionnxml/_op_list.py +16 -8
- onnx/reference/ops/aionnxml/op_array_feature_extractor.py +4 -6
- onnx/reference/ops/aionnxml/op_linear_classifier.py +1 -2
- onnx/reference/ops/aionnxml/op_normalizer.py +3 -3
- onnx/reference/ops/aionnxml/op_svm_helper.py +1 -3
- onnx/reference/ops/aionnxml/op_svm_regressor.py +1 -3
- onnx/reference/ops/aionnxml/op_tree_ensemble.py +257 -0
- onnx/reference/ops/aionnxml/op_tree_ensemble_helper.py +2 -6
- onnx/reference/ops/aionnxml/op_tree_ensemble_regressor.py +4 -4
- onnx/reference/ops/experimental/_op_list.py +15 -8
- onnx/reference/ops/op_blackman_window.py +5 -6
- onnx/reference/ops/op_cast.py +22 -0
- onnx/reference/ops/op_cast_like.py +6 -0
- onnx/reference/ops/op_clip.py +5 -8
- onnx/reference/ops/op_col2im.py +1 -3
- onnx/reference/ops/op_constant.py +7 -1
- onnx/reference/ops/op_dequantize_linear.py +43 -40
- onnx/reference/ops/op_det.py +1 -1
- onnx/reference/ops/op_dynamic_quantize_linear.py +2 -2
- onnx/reference/ops/op_grid_sample.py +2 -4
- onnx/reference/ops/op_hamming_window.py +3 -6
- onnx/reference/ops/op_hann_window.py +3 -6
- onnx/reference/ops/op_if.py +4 -3
- onnx/reference/ops/op_loop.py +7 -9
- onnx/reference/ops/op_matmul.py +1 -2
- onnx/reference/ops/op_max_pool.py +5 -0
- onnx/reference/ops/op_optional.py +1 -1
- onnx/reference/ops/op_pool_common.py +3 -6
- onnx/reference/ops/op_qlinear_matmul.py +2 -2
- onnx/reference/ops/op_quantize_linear.py +166 -71
- onnx/reference/ops/op_resize.py +25 -21
- onnx/reference/ops/op_rnn.py +20 -12
- onnx/reference/ops/op_scan.py +23 -15
- onnx/reference/ops/op_scatter_elements.py +7 -6
- onnx/reference/ops/op_stft.py +3 -5
- onnx/reference/ops/op_string_normalizer.py +7 -7
- onnx/reference/ops/op_tfidf_vectorizer.py +7 -8
- onnx/reference/ops/op_topk.py +9 -11
- onnx/reference/ops/op_unique.py +1 -1
- onnx/reference/reference_evaluator.py +119 -63
- onnx/shape_inference/implementation.cc +160 -127
- onnx/shape_inference.py +11 -10
- onnx/subbyte.py +72 -0
- onnx/test/__init__.pyi +6 -0
- onnx/test/checker_test.py +21 -1
- onnx/test/compose_test.py +26 -74
- onnx/test/cpp/inliner_test.cc +76 -1
- onnx/test/cpp/ir_test.cc +60 -0
- onnx/test/cpp/parser_test.cc +106 -0
- onnx/test/function_test.py +1 -3
- onnx/test/helper_test.py +64 -4
- onnx/test/model_container_refeval_test.py +139 -0
- onnx/test/model_container_test.py +136 -0
- onnx/test/model_inference_test.py +44 -0
- onnx/test/reference_evaluator_ml_test.py +448 -47
- onnx/test/reference_evaluator_model_test.py +130 -0
- onnx/test/reference_evaluator_test.py +901 -14
- onnx/test/schema_test.py +166 -1
- onnx/test/shape_inference_test.py +285 -6
- onnx/test/symbolic_shape_test.py +3 -8
- onnx/test/test_backend_onnxruntime.py +238 -224
- onnx/test/test_backend_reference.py +11 -0
- onnx/test/test_external_data.py +51 -2
- onnx/test/version_converter/automatic_conversion_test_base.py +2 -1
- onnx/test/version_converter/automatic_upgrade_test.py +12 -10
- onnx/test/version_converter_test.py +166 -0
- onnx/tools/replace_constants.py +23 -26
- onnx/tools/update_model_dims.py +1 -2
- onnx/version.py +2 -2
- onnx/version_converter/adapters/group_normalization_20_21.h +128 -0
- onnx/version_converter/adapters/q_dq_21_20.h +77 -0
- onnx/version_converter/convert.h +67 -2
- onnx/version_converter.py +6 -142
- {onnx-1.15.0.dist-info → onnx-1.16.1.dist-info}/METADATA +18 -15
- {onnx-1.15.0.dist-info → onnx-1.16.1.dist-info}/RECORD +572 -406
- {onnx-1.15.0.dist-info → onnx-1.16.1.dist-info}/WHEEL +1 -1
- onnx/examples/Protobufs.ipynb +0 -639
- onnx/examples/check_model.ipynb +0 -128
- onnx/examples/load_model.ipynb +0 -116
- onnx/examples/make_model.ipynb +0 -176
- onnx/examples/np_array_tensorproto.ipynb +0 -136
- onnx/examples/resources/single_relu.onnx +0 -12
- onnx/examples/resources/single_relu_new.onnx +0 -12
- onnx/examples/resources/tensor.pb +0 -0
- onnx/examples/resources/two_transposes.onnx +0 -0
- onnx/examples/save_model.ipynb +0 -56
- onnx/examples/shape_inference.ipynb +0 -111
- onnx/test/reference_evaluator_backend_test.py +0 -876
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_int8_float32}/test_data_set_0/input_1.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_int8_float32}/test_data_set_0/input_4.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_int8_float32}/test_data_set_0/input_6.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_uint8_float16}/test_data_set_0/input_0.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_uint8_float16}/test_data_set_0/input_2.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_uint8_float16}/test_data_set_0/input_3.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_uint8_float16}/test_data_set_0/input_5.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_uint8_float16}/test_data_set_0/input_7.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_2D → test_qlinearmatmul_2D_uint8_float16}/test_data_set_0/output_0.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_2D_uint8_float32}/test_data_set_0/input_1.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_2D_uint8_float32}/test_data_set_0/input_2.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_2D_uint8_float32}/test_data_set_0/input_4.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_2D_uint8_float32}/test_data_set_0/input_5.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_2D_uint8_float32}/test_data_set_0/input_6.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_2D_uint8_float32}/test_data_set_0/input_7.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_3D_uint8_float16}/test_data_set_0/input_0.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_3D_uint8_float16}/test_data_set_0/input_3.pb +0 -0
- /onnx/backend/test/data/node/{test_qlinearmatmul_3D → test_qlinearmatmul_3D_uint8_float16}/test_data_set_0/output_0.pb +0 -0
- {onnx-1.15.0.dist-info → onnx-1.16.1.dist-info}/LICENSE +0 -0
- {onnx-1.15.0.dist-info → onnx-1.16.1.dist-info}/entry_points.txt +0 -0
- {onnx-1.15.0.dist-info → onnx-1.16.1.dist-info}/top_level.txt +0 -0
onnx/test/schema_test.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Copyright (c) ONNX Project Contributors
|
|
2
2
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import contextlib
|
|
4
5
|
import unittest
|
|
5
|
-
from typing import Sequence
|
|
6
|
+
from typing import List, Sequence
|
|
6
7
|
|
|
7
8
|
import parameterized
|
|
8
9
|
|
|
@@ -258,5 +259,169 @@ class TestAttribute(unittest.TestCase):
|
|
|
258
259
|
self.assertEqual("attr1 description", attribute.description)
|
|
259
260
|
|
|
260
261
|
|
|
262
|
+
@parameterized.parameterized_class(
|
|
263
|
+
[
|
|
264
|
+
# register to exist domain
|
|
265
|
+
{
|
|
266
|
+
"op_type": "CustomOp",
|
|
267
|
+
"op_version": 5,
|
|
268
|
+
"op_domain": "",
|
|
269
|
+
"trap_op_version": [1, 2, 6, 7],
|
|
270
|
+
},
|
|
271
|
+
# register to new domain
|
|
272
|
+
{
|
|
273
|
+
"op_type": "CustomOp",
|
|
274
|
+
"op_version": 5,
|
|
275
|
+
"op_domain": "test",
|
|
276
|
+
"trap_op_version": [1, 2, 6, 7],
|
|
277
|
+
},
|
|
278
|
+
]
|
|
279
|
+
)
|
|
280
|
+
class TestOpSchemaRegister(unittest.TestCase):
|
|
281
|
+
op_type: str
|
|
282
|
+
op_version: int
|
|
283
|
+
op_domain: str
|
|
284
|
+
# register some fake schema to check behavior
|
|
285
|
+
trap_op_version: List[int]
|
|
286
|
+
|
|
287
|
+
def setUp(self) -> None:
|
|
288
|
+
# Ensure the schema is unregistered
|
|
289
|
+
self.assertFalse(onnx.defs.has(self.op_type, self.op_domain))
|
|
290
|
+
|
|
291
|
+
def tearDown(self) -> None:
|
|
292
|
+
# Clean up the registered schema
|
|
293
|
+
for version in [*self.trap_op_version, self.op_version]:
|
|
294
|
+
with contextlib.suppress(onnx.defs.SchemaError):
|
|
295
|
+
onnx.defs.deregister_schema(self.op_type, version, self.op_domain)
|
|
296
|
+
|
|
297
|
+
def test_register_multi_schema(self):
|
|
298
|
+
for version in [*self.trap_op_version, self.op_version]:
|
|
299
|
+
op_schema = defs.OpSchema(
|
|
300
|
+
self.op_type,
|
|
301
|
+
self.op_domain,
|
|
302
|
+
version,
|
|
303
|
+
)
|
|
304
|
+
onnx.defs.register_schema(op_schema)
|
|
305
|
+
self.assertTrue(onnx.defs.has(self.op_type, version, self.op_domain))
|
|
306
|
+
for version in [*self.trap_op_version, self.op_version]:
|
|
307
|
+
# Also make sure the `op_schema` is accessible after register
|
|
308
|
+
registered_op = onnx.defs.get_schema(
|
|
309
|
+
op_schema.name, version, op_schema.domain
|
|
310
|
+
)
|
|
311
|
+
op_schema = defs.OpSchema(
|
|
312
|
+
self.op_type,
|
|
313
|
+
self.op_domain,
|
|
314
|
+
version,
|
|
315
|
+
)
|
|
316
|
+
self.assertEqual(str(registered_op), str(op_schema))
|
|
317
|
+
|
|
318
|
+
def test_using_the_specified_version_in_onnx_check(self):
|
|
319
|
+
input = f"""
|
|
320
|
+
<
|
|
321
|
+
ir_version: 7,
|
|
322
|
+
opset_import: [
|
|
323
|
+
"{self.op_domain}" : {self.op_version}
|
|
324
|
+
]
|
|
325
|
+
>
|
|
326
|
+
agraph (float[N, 128] X, int32 Y) => (float[N] Z)
|
|
327
|
+
{{
|
|
328
|
+
Z = {self.op_domain}.{self.op_type}<attr1=[1,2]>(X, Y)
|
|
329
|
+
}}
|
|
330
|
+
"""
|
|
331
|
+
model = onnx.parser.parse_model(input)
|
|
332
|
+
op_schema = defs.OpSchema(
|
|
333
|
+
self.op_type,
|
|
334
|
+
self.op_domain,
|
|
335
|
+
self.op_version,
|
|
336
|
+
inputs=[
|
|
337
|
+
defs.OpSchema.FormalParameter("input1", "T"),
|
|
338
|
+
defs.OpSchema.FormalParameter("input2", "int32"),
|
|
339
|
+
],
|
|
340
|
+
outputs=[
|
|
341
|
+
defs.OpSchema.FormalParameter("output1", "T"),
|
|
342
|
+
],
|
|
343
|
+
type_constraints=[("T", ["tensor(float)"], "")],
|
|
344
|
+
attributes=[
|
|
345
|
+
defs.OpSchema.Attribute(
|
|
346
|
+
"attr1", defs.OpSchema.AttrType.INTS, "attr1 description"
|
|
347
|
+
)
|
|
348
|
+
],
|
|
349
|
+
)
|
|
350
|
+
with self.assertRaises(onnx.checker.ValidationError):
|
|
351
|
+
onnx.checker.check_model(model, check_custom_domain=True)
|
|
352
|
+
onnx.defs.register_schema(op_schema)
|
|
353
|
+
# The fake schema will raise check exception if selected in checker
|
|
354
|
+
for version in self.trap_op_version:
|
|
355
|
+
onnx.defs.register_schema(
|
|
356
|
+
defs.OpSchema(
|
|
357
|
+
self.op_type,
|
|
358
|
+
self.op_domain,
|
|
359
|
+
version,
|
|
360
|
+
outputs=[
|
|
361
|
+
defs.OpSchema.FormalParameter("output1", "int32"),
|
|
362
|
+
],
|
|
363
|
+
)
|
|
364
|
+
)
|
|
365
|
+
onnx.checker.check_model(model, check_custom_domain=True)
|
|
366
|
+
|
|
367
|
+
def test_register_schema_raises_error_when_registering_a_schema_twice(self):
|
|
368
|
+
op_schema = defs.OpSchema(
|
|
369
|
+
self.op_type,
|
|
370
|
+
self.op_domain,
|
|
371
|
+
self.op_version,
|
|
372
|
+
)
|
|
373
|
+
onnx.defs.register_schema(op_schema)
|
|
374
|
+
with self.assertRaises(onnx.defs.SchemaError):
|
|
375
|
+
onnx.defs.register_schema(op_schema)
|
|
376
|
+
|
|
377
|
+
def test_deregister_the_specified_schema(self):
|
|
378
|
+
for version in [*self.trap_op_version, self.op_version]:
|
|
379
|
+
op_schema = defs.OpSchema(
|
|
380
|
+
self.op_type,
|
|
381
|
+
self.op_domain,
|
|
382
|
+
version,
|
|
383
|
+
)
|
|
384
|
+
onnx.defs.register_schema(op_schema)
|
|
385
|
+
self.assertTrue(onnx.defs.has(op_schema.name, version, op_schema.domain))
|
|
386
|
+
onnx.defs.deregister_schema(op_schema.name, self.op_version, op_schema.domain)
|
|
387
|
+
for version in self.trap_op_version:
|
|
388
|
+
self.assertTrue(onnx.defs.has(op_schema.name, version, op_schema.domain))
|
|
389
|
+
# Maybe has lesser op version in trap list
|
|
390
|
+
if onnx.defs.has(op_schema.name, self.op_version, op_schema.domain):
|
|
391
|
+
schema = onnx.defs.get_schema(
|
|
392
|
+
op_schema.name, self.op_version, op_schema.domain
|
|
393
|
+
)
|
|
394
|
+
self.assertLess(schema.since_version, self.op_version)
|
|
395
|
+
|
|
396
|
+
def test_deregister_schema_raises_error_when_opschema_does_not_exist(self):
|
|
397
|
+
with self.assertRaises(onnx.defs.SchemaError):
|
|
398
|
+
onnx.defs.deregister_schema(self.op_type, self.op_version, self.op_domain)
|
|
399
|
+
|
|
400
|
+
def test_legacy_schema_accessible_after_deregister(self):
|
|
401
|
+
op_schema = defs.OpSchema(
|
|
402
|
+
self.op_type,
|
|
403
|
+
self.op_domain,
|
|
404
|
+
self.op_version,
|
|
405
|
+
)
|
|
406
|
+
onnx.defs.register_schema(op_schema)
|
|
407
|
+
schema_a = onnx.defs.get_schema(
|
|
408
|
+
op_schema.name, op_schema.since_version, op_schema.domain
|
|
409
|
+
)
|
|
410
|
+
schema_b = onnx.defs.get_schema(op_schema.name, op_schema.domain)
|
|
411
|
+
|
|
412
|
+
def filter_schema(schemas):
|
|
413
|
+
return [op for op in schemas if op.name == op_schema.name]
|
|
414
|
+
|
|
415
|
+
schema_c = filter_schema(onnx.defs.get_all_schemas())
|
|
416
|
+
schema_d = filter_schema(onnx.defs.get_all_schemas_with_history())
|
|
417
|
+
self.assertEqual(len(schema_c), 1)
|
|
418
|
+
self.assertEqual(len(schema_d), 1)
|
|
419
|
+
# Avoid memory residue and access storage as much as possible
|
|
420
|
+
self.assertEqual(str(schema_a), str(op_schema))
|
|
421
|
+
self.assertEqual(str(schema_b), str(op_schema))
|
|
422
|
+
self.assertEqual(str(schema_c[0]), str(op_schema))
|
|
423
|
+
self.assertEqual(str(schema_d[0]), str(op_schema))
|
|
424
|
+
|
|
425
|
+
|
|
261
426
|
if __name__ == "__main__":
|
|
262
427
|
unittest.main()
|
|
@@ -395,6 +395,19 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
395
395
|
opset_imports=[helper.make_opsetid(ONNX_DOMAIN, version)],
|
|
396
396
|
)
|
|
397
397
|
|
|
398
|
+
@parameterized.expand(all_versions_for("Cast"))
|
|
399
|
+
@unittest.skip(
|
|
400
|
+
"Issue #5960"
|
|
401
|
+
) # FIXME(#5960) propagateElemTypeFromAttributeToOutput does not validate against output type constraints
|
|
402
|
+
def test_cast_to_complex(self, _, version) -> None:
|
|
403
|
+
graph = self._make_graph(
|
|
404
|
+
[("x", TensorProto.FLOAT, (2, 4, 3))],
|
|
405
|
+
[make_node("Cast", ["x"], ["y"], to=TensorProto.COMPLEX128)],
|
|
406
|
+
[],
|
|
407
|
+
)
|
|
408
|
+
|
|
409
|
+
self.assertRaises(onnx.shape_inference.InferenceError, self._inferred, graph)
|
|
410
|
+
|
|
398
411
|
@parameterized.expand(all_versions_for("CastLike"))
|
|
399
412
|
def test_cast_like(self, _, version) -> None:
|
|
400
413
|
graph = self._make_graph(
|
|
@@ -1652,6 +1665,21 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
1652
1665
|
opset_imports=[helper.make_opsetid(ONNX_DOMAIN, version)],
|
|
1653
1666
|
)
|
|
1654
1667
|
|
|
1668
|
+
def test_squeeze_no_axes_opset11(self) -> None:
|
|
1669
|
+
graph = self._make_graph(
|
|
1670
|
+
[
|
|
1671
|
+
("x", TensorProto.FLOAT, (1, 3, 1, 1, 2, 1)),
|
|
1672
|
+
],
|
|
1673
|
+
[make_node("Squeeze", ["x"], "y")],
|
|
1674
|
+
[],
|
|
1675
|
+
)
|
|
1676
|
+
operatorsetid = OperatorSetIdProto()
|
|
1677
|
+
operatorsetid.domain = ""
|
|
1678
|
+
operatorsetid.version = 11
|
|
1679
|
+
self._assert_inferred(
|
|
1680
|
+
graph, [make_tensor_value_info("y", TensorProto.FLOAT, (3, 2))]
|
|
1681
|
+
)
|
|
1682
|
+
|
|
1655
1683
|
def test_unsqueeze_regular(self) -> None:
|
|
1656
1684
|
graph = self._make_graph(
|
|
1657
1685
|
[("x", TensorProto.FLOAT, (3, 2)), ("axes", TensorProto.INT64, (4,))],
|
|
@@ -5250,11 +5278,14 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
5250
5278
|
self._make_matmulinteger_test((5, 1, 4, 2), (1, 3, 2, 3))
|
|
5251
5279
|
self._make_matmulinteger_test((4, 2), (3, 2, 3))
|
|
5252
5280
|
|
|
5253
|
-
|
|
5281
|
+
@parameterized.expand(
|
|
5282
|
+
[onnx.TensorProto.FLOAT, onnx.TensorProto.FLOAT16, onnx.TensorProto.BFLOAT16]
|
|
5283
|
+
)
|
|
5284
|
+
def test_quantizelinear(self, elem_type) -> None:
|
|
5254
5285
|
graph = self._make_graph(
|
|
5255
5286
|
[
|
|
5256
|
-
("x",
|
|
5257
|
-
("y_scale",
|
|
5287
|
+
("x", elem_type, (30, 4, 5)),
|
|
5288
|
+
("y_scale", elem_type, ()),
|
|
5258
5289
|
("y_zero_point", TensorProto.UINT8, ()),
|
|
5259
5290
|
],
|
|
5260
5291
|
[make_node("QuantizeLinear", ["x", "y_scale", "y_zero_point"], ["y"])],
|
|
@@ -5284,18 +5315,106 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
5284
5315
|
graph, [make_tensor_value_info("y", TensorProto.UINT8, (30, 4, 5))]
|
|
5285
5316
|
)
|
|
5286
5317
|
|
|
5287
|
-
def
|
|
5318
|
+
def test_quantizelinear_output_dtype(self) -> None:
|
|
5319
|
+
graph = self._make_graph(
|
|
5320
|
+
[("x", TensorProto.FLOAT, (3, 4, 5)), ("y_scale", TensorProto.FLOAT, ())],
|
|
5321
|
+
[
|
|
5322
|
+
make_node(
|
|
5323
|
+
"QuantizeLinear",
|
|
5324
|
+
["x", "y_scale"],
|
|
5325
|
+
["y"],
|
|
5326
|
+
output_dtype=TensorProto.UINT4,
|
|
5327
|
+
)
|
|
5328
|
+
],
|
|
5329
|
+
[],
|
|
5330
|
+
)
|
|
5331
|
+
self._assert_inferred(
|
|
5332
|
+
graph, [make_tensor_value_info("y", TensorProto.UINT4, (3, 4, 5))]
|
|
5333
|
+
)
|
|
5334
|
+
|
|
5335
|
+
def test_quantizelinear_zp_output_dtype(self) -> None:
|
|
5336
|
+
graph = self._make_graph(
|
|
5337
|
+
[
|
|
5338
|
+
("x", TensorProto.FLOAT, (3, 4, 5)),
|
|
5339
|
+
("y_scale", TensorProto.FLOAT, ()),
|
|
5340
|
+
("y_zero_point", TensorProto.UINT16, ()),
|
|
5341
|
+
],
|
|
5342
|
+
[
|
|
5343
|
+
make_node(
|
|
5344
|
+
"QuantizeLinear",
|
|
5345
|
+
["x", "y_scale", "y_zero_point"],
|
|
5346
|
+
["y"],
|
|
5347
|
+
output_dtype=TensorProto.UINT16,
|
|
5348
|
+
)
|
|
5349
|
+
],
|
|
5350
|
+
[],
|
|
5351
|
+
)
|
|
5352
|
+
self._assert_inferred(
|
|
5353
|
+
graph, [make_tensor_value_info("y", TensorProto.UINT16, (3, 4, 5))]
|
|
5354
|
+
)
|
|
5355
|
+
|
|
5356
|
+
def test_quantizelinear_zp_output_dtype_conflicted(self) -> None:
|
|
5357
|
+
graph = self._make_graph(
|
|
5358
|
+
[
|
|
5359
|
+
("x", TensorProto.FLOAT, (3, 4, 5)),
|
|
5360
|
+
("y_scale", TensorProto.FLOAT, ()),
|
|
5361
|
+
("y_zero_point", TensorProto.UINT16, ()),
|
|
5362
|
+
],
|
|
5363
|
+
[
|
|
5364
|
+
make_node(
|
|
5365
|
+
"QuantizeLinear",
|
|
5366
|
+
["x", "y_scale", "y_zero_point"],
|
|
5367
|
+
["y"],
|
|
5368
|
+
output_dtype=TensorProto.INT4,
|
|
5369
|
+
)
|
|
5370
|
+
],
|
|
5371
|
+
[],
|
|
5372
|
+
)
|
|
5373
|
+
|
|
5374
|
+
self.assertRaises(
|
|
5375
|
+
onnx.shape_inference.InferenceError,
|
|
5376
|
+
self._inferred,
|
|
5377
|
+
graph,
|
|
5378
|
+
)
|
|
5379
|
+
|
|
5380
|
+
@unittest.skip(
|
|
5381
|
+
"Issue #5960"
|
|
5382
|
+
) # FIXME(#5960) propagateElemTypeFromAttributeToOutput does not validate against output type constraints
|
|
5383
|
+
def test_quantizelinear_invalid_output_dtype(self) -> None:
|
|
5384
|
+
graph = self._make_graph(
|
|
5385
|
+
[("x", TensorProto.FLOAT, (3, 4, 5)), ("y_scale", TensorProto.FLOAT, ())],
|
|
5386
|
+
[
|
|
5387
|
+
make_node(
|
|
5388
|
+
"QuantizeLinear",
|
|
5389
|
+
["x", "y_scale"],
|
|
5390
|
+
["y"],
|
|
5391
|
+
output_dtype=TensorProto.FLOAT16,
|
|
5392
|
+
)
|
|
5393
|
+
],
|
|
5394
|
+
[],
|
|
5395
|
+
)
|
|
5396
|
+
|
|
5397
|
+
self.assertRaises(
|
|
5398
|
+
onnx.shape_inference.InferenceError,
|
|
5399
|
+
self._inferred,
|
|
5400
|
+
graph,
|
|
5401
|
+
)
|
|
5402
|
+
|
|
5403
|
+
@parameterized.expand(
|
|
5404
|
+
[onnx.TensorProto.FLOAT, onnx.TensorProto.FLOAT16, onnx.TensorProto.BFLOAT16]
|
|
5405
|
+
)
|
|
5406
|
+
def test_dequantizelinear(self, elem_type) -> None:
|
|
5288
5407
|
graph = self._make_graph(
|
|
5289
5408
|
[
|
|
5290
5409
|
("x", TensorProto.UINT8, (30, 4, 5)),
|
|
5291
|
-
("x_scale",
|
|
5410
|
+
("x_scale", elem_type, ()),
|
|
5292
5411
|
("x_zero_point", TensorProto.UINT8, ()),
|
|
5293
5412
|
],
|
|
5294
5413
|
[make_node("DequantizeLinear", ["x", "x_scale", "x_zero_point"], ["y"])],
|
|
5295
5414
|
[],
|
|
5296
5415
|
)
|
|
5297
5416
|
self._assert_inferred(
|
|
5298
|
-
graph, [make_tensor_value_info("y",
|
|
5417
|
+
graph, [make_tensor_value_info("y", elem_type, (30, 4, 5))]
|
|
5299
5418
|
)
|
|
5300
5419
|
|
|
5301
5420
|
def test_dynamicquantizelinear(self) -> None:
|
|
@@ -9457,6 +9576,139 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
9457
9576
|
],
|
|
9458
9577
|
)
|
|
9459
9578
|
|
|
9579
|
+
@parameterized.expand([TensorProto.FLOAT, TensorProto.DOUBLE, TensorProto.FLOAT16])
|
|
9580
|
+
@unittest.skipUnless(ONNX_ML, "ONNX_ML required to test ai.onnx.ml operators")
|
|
9581
|
+
def test_tree_ensemble(self, dtype) -> None:
|
|
9582
|
+
interior_nodes = 5
|
|
9583
|
+
leaves = 9
|
|
9584
|
+
tree = make_node(
|
|
9585
|
+
"TreeEnsemble",
|
|
9586
|
+
["x"],
|
|
9587
|
+
["y"],
|
|
9588
|
+
domain=ONNX_ML_DOMAIN,
|
|
9589
|
+
n_targets=5,
|
|
9590
|
+
nodes_featureids=[0] * interior_nodes,
|
|
9591
|
+
nodes_splits=make_tensor(
|
|
9592
|
+
"nodes_splits",
|
|
9593
|
+
dtype,
|
|
9594
|
+
(interior_nodes,),
|
|
9595
|
+
list(range(interior_nodes)),
|
|
9596
|
+
),
|
|
9597
|
+
nodes_modes=make_tensor(
|
|
9598
|
+
"nodes_modes",
|
|
9599
|
+
TensorProto.UINT8,
|
|
9600
|
+
(interior_nodes,),
|
|
9601
|
+
[0] * interior_nodes,
|
|
9602
|
+
),
|
|
9603
|
+
nodes_truenodeids=[0] * interior_nodes,
|
|
9604
|
+
nodes_falsenodeids=[0] * interior_nodes,
|
|
9605
|
+
nodes_trueleafs=[0] * interior_nodes,
|
|
9606
|
+
nodes_falseleafs=[0] * interior_nodes,
|
|
9607
|
+
membership_values=make_tensor(
|
|
9608
|
+
"membership_values",
|
|
9609
|
+
dtype,
|
|
9610
|
+
(7,),
|
|
9611
|
+
[0.0, 0.1, 0.2, np.nan, 0.4, 0.5, 1.0],
|
|
9612
|
+
),
|
|
9613
|
+
leaf_targetids=[0] * leaves,
|
|
9614
|
+
leaf_weights=make_tensor("leaf_weights", dtype, (leaves,), [1] * leaves),
|
|
9615
|
+
tree_roots=[0],
|
|
9616
|
+
)
|
|
9617
|
+
|
|
9618
|
+
graph = self._make_graph(
|
|
9619
|
+
[("x", dtype, ("Batch Size", "Features"))],
|
|
9620
|
+
[tree],
|
|
9621
|
+
[],
|
|
9622
|
+
)
|
|
9623
|
+
|
|
9624
|
+
self._assert_inferred(
|
|
9625
|
+
graph,
|
|
9626
|
+
[make_tensor_value_info("y", dtype, ("Batch Size", 5))],
|
|
9627
|
+
opset_imports=[
|
|
9628
|
+
make_opsetid(ONNX_ML_DOMAIN, 5),
|
|
9629
|
+
make_opsetid(ONNX_DOMAIN, 11),
|
|
9630
|
+
],
|
|
9631
|
+
)
|
|
9632
|
+
|
|
9633
|
+
@parameterized.expand(
|
|
9634
|
+
[
|
|
9635
|
+
{
|
|
9636
|
+
"nodes_truenodeids": [0] * 6,
|
|
9637
|
+
"leaf_weights": make_tensor(
|
|
9638
|
+
"leaf_weights", TensorProto.DOUBLE, (9,), [1] * 9
|
|
9639
|
+
),
|
|
9640
|
+
"nodes_splits": make_tensor(
|
|
9641
|
+
"nodes_splits", TensorProto.DOUBLE, (5,), [1] * 5
|
|
9642
|
+
),
|
|
9643
|
+
},
|
|
9644
|
+
{
|
|
9645
|
+
"nodes_truenodeids": [0] * 5,
|
|
9646
|
+
"leaf_weights": make_tensor(
|
|
9647
|
+
"leaf_weights", TensorProto.FLOAT, (9,), [1] * 9
|
|
9648
|
+
),
|
|
9649
|
+
"nodes_splits": make_tensor(
|
|
9650
|
+
"nodes_splits", TensorProto.DOUBLE, (5,), [1] * 5
|
|
9651
|
+
),
|
|
9652
|
+
},
|
|
9653
|
+
{
|
|
9654
|
+
"nodes_truenodeids": [0] * 5,
|
|
9655
|
+
"leaf_weights": make_tensor(
|
|
9656
|
+
"leaf_weights", TensorProto.DOUBLE, (18,), [1] * 18
|
|
9657
|
+
),
|
|
9658
|
+
"nodes_splits": make_tensor(
|
|
9659
|
+
"nodes_splits", TensorProto.DOUBLE, (5,), [1] * 5
|
|
9660
|
+
),
|
|
9661
|
+
},
|
|
9662
|
+
{
|
|
9663
|
+
"nodes_truenodeids": [0] * 5,
|
|
9664
|
+
"leaf_weights": make_tensor(
|
|
9665
|
+
"leaf_weights", TensorProto.DOUBLE, (9,), [1] * 9
|
|
9666
|
+
),
|
|
9667
|
+
"nodes_splits": make_tensor(
|
|
9668
|
+
"nodes_splits", TensorProto.FLOAT, (5,), [1] * 5
|
|
9669
|
+
),
|
|
9670
|
+
},
|
|
9671
|
+
]
|
|
9672
|
+
)
|
|
9673
|
+
@unittest.skipUnless(ONNX_ML, "ONNX_ML required to test ai.onnx.ml operators")
|
|
9674
|
+
def test_tree_ensemble_fails_if_invalid_attributes(
|
|
9675
|
+
self,
|
|
9676
|
+
nodes_truenodeids,
|
|
9677
|
+
leaf_weights,
|
|
9678
|
+
nodes_splits,
|
|
9679
|
+
) -> None:
|
|
9680
|
+
interior_nodes = 5
|
|
9681
|
+
leaves = 9
|
|
9682
|
+
tree = make_node(
|
|
9683
|
+
"TreeEnsemble",
|
|
9684
|
+
["x"],
|
|
9685
|
+
["y"],
|
|
9686
|
+
domain=ONNX_ML_DOMAIN,
|
|
9687
|
+
n_targets=5,
|
|
9688
|
+
nodes_featureids=[0] * interior_nodes,
|
|
9689
|
+
nodes_splits=nodes_splits,
|
|
9690
|
+
nodes_modes=make_tensor(
|
|
9691
|
+
"nodes_modes",
|
|
9692
|
+
TensorProto.UINT8,
|
|
9693
|
+
(interior_nodes,),
|
|
9694
|
+
[0] * interior_nodes,
|
|
9695
|
+
),
|
|
9696
|
+
nodes_truenodeids=nodes_truenodeids,
|
|
9697
|
+
nodes_falsenodeids=[0] * interior_nodes,
|
|
9698
|
+
nodes_trueleafs=[0] * interior_nodes,
|
|
9699
|
+
nodes_falseleafs=[0] * interior_nodes,
|
|
9700
|
+
leaf_targetids=[0] * leaves,
|
|
9701
|
+
leaf_weights=leaf_weights,
|
|
9702
|
+
tree_roots=[0],
|
|
9703
|
+
)
|
|
9704
|
+
|
|
9705
|
+
graph = self._make_graph(
|
|
9706
|
+
[("x", TensorProto.DOUBLE, ("Batch Size", "Features"))],
|
|
9707
|
+
[tree],
|
|
9708
|
+
[],
|
|
9709
|
+
)
|
|
9710
|
+
self.assertRaises(onnx.shape_inference.InferenceError, self._inferred, graph)
|
|
9711
|
+
|
|
9460
9712
|
@unittest.skipUnless(ONNX_ML, "ONNX_ML required to test ai.onnx.ml operators")
|
|
9461
9713
|
def test_tree_ensemble_classifier(self) -> None:
|
|
9462
9714
|
tree = make_node(
|
|
@@ -9623,6 +9875,33 @@ class TestShapeInference(TestShapeInferenceHelper):
|
|
|
9623
9875
|
)
|
|
9624
9876
|
self._assert_inferred(graph, [make_tensor_value_info("output", TensorProto.INT64, (2, "N", 3, None))]) # type: ignore
|
|
9625
9877
|
|
|
9878
|
+
def test_check_type_when_schema_has_empty_io(self):
|
|
9879
|
+
input = """
|
|
9880
|
+
<
|
|
9881
|
+
ir_version: 7,
|
|
9882
|
+
opset_import: ["" : 1]
|
|
9883
|
+
>
|
|
9884
|
+
agraph (X, Y) => (Z)
|
|
9885
|
+
{
|
|
9886
|
+
Z = CustomOp(X, Y)
|
|
9887
|
+
}
|
|
9888
|
+
"""
|
|
9889
|
+
model = onnx.parser.parse_model(input)
|
|
9890
|
+
|
|
9891
|
+
op_schema = defs.OpSchema(
|
|
9892
|
+
"CustomOp",
|
|
9893
|
+
"",
|
|
9894
|
+
1,
|
|
9895
|
+
inputs=[],
|
|
9896
|
+
outputs=[],
|
|
9897
|
+
)
|
|
9898
|
+
onnx.defs.register_schema(op_schema)
|
|
9899
|
+
with self.assertRaises(onnx.shape_inference.InferenceError):
|
|
9900
|
+
onnx.shape_inference.infer_shapes(model, True)
|
|
9901
|
+
onnx.defs.deregister_schema(
|
|
9902
|
+
op_schema.name, op_schema.since_version, op_schema.domain
|
|
9903
|
+
)
|
|
9904
|
+
|
|
9626
9905
|
|
|
9627
9906
|
if __name__ == "__main__":
|
|
9628
9907
|
unittest.main()
|
onnx/test/symbolic_shape_test.py
CHANGED
|
@@ -14,8 +14,7 @@ class TestSymbolicShape(unittest.TestCase):
|
|
|
14
14
|
def _assert_valueinfo_shape(
|
|
15
15
|
self, onnx_model: ModelProto, value_infos: List[ValueInfoProto]
|
|
16
16
|
) -> None:
|
|
17
|
-
"""
|
|
18
|
-
Assert onnx_model.value_info should be the same as expected value_infos
|
|
17
|
+
"""Assert onnx_model.value_info should be the same as expected value_infos
|
|
19
18
|
Instead of exact symbol, use -1 to represent symbolic shape in expected value_infos
|
|
20
19
|
"""
|
|
21
20
|
for expected_vi in value_infos:
|
|
@@ -36,9 +35,7 @@ class TestSymbolicShape(unittest.TestCase):
|
|
|
36
35
|
assert dim.dim_value == expected_dim.dim_value, f"{onnx_model}"
|
|
37
36
|
|
|
38
37
|
def _count_unique_dim_param_number(self, onnx_model: ModelProto) -> int:
|
|
39
|
-
"""
|
|
40
|
-
return the total number of unique symbolic shape
|
|
41
|
-
"""
|
|
38
|
+
"""Return the total number of unique symbolic shape"""
|
|
42
39
|
symbol_shape_set = set()
|
|
43
40
|
inputs = list(onnx_model.graph.input)
|
|
44
41
|
outputs = list(onnx_model.graph.output)
|
|
@@ -52,9 +49,7 @@ class TestSymbolicShape(unittest.TestCase):
|
|
|
52
49
|
def _get_shape_from_name(
|
|
53
50
|
self, onnx_model: ModelProto, name: str
|
|
54
51
|
) -> Optional[TensorShapeProto]:
|
|
55
|
-
"""
|
|
56
|
-
Get shape from tensor_type or sparse_tensor_type according to given name
|
|
57
|
-
"""
|
|
52
|
+
"""Get shape from tensor_type or sparse_tensor_type according to given name"""
|
|
58
53
|
inputs = list(onnx_model.graph.input)
|
|
59
54
|
outputs = list(onnx_model.graph.output)
|
|
60
55
|
valueinfos = list(onnx_model.graph.value_info)
|