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/compose_test.py
CHANGED
|
@@ -24,25 +24,19 @@ from onnx import (
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
def _load_model(m_def: str) -> ModelProto:
|
|
27
|
-
"""
|
|
28
|
-
Parses a model from a string representation, including checking the model for correctness
|
|
29
|
-
"""
|
|
27
|
+
"""Parses a model from a string representation, including checking the model for correctness"""
|
|
30
28
|
m = parser.parse_model(m_def)
|
|
31
29
|
checker.check_model(m)
|
|
32
30
|
return m
|
|
33
31
|
|
|
34
32
|
|
|
35
33
|
def _prefixed(prefix: str, s: str) -> str:
|
|
36
|
-
"""
|
|
37
|
-
Prefixes a string (if not empty)
|
|
38
|
-
"""
|
|
34
|
+
"""Prefixes a string (if not empty)"""
|
|
39
35
|
return prefix + s if len(s) > 0 else s
|
|
40
36
|
|
|
41
37
|
|
|
42
38
|
def _get_shape(value_info: ValueInfoProto) -> List[int]:
|
|
43
|
-
"""
|
|
44
|
-
Returns a list of integers representing the shape of the provided ValueInfoProto
|
|
45
|
-
"""
|
|
39
|
+
"""Returns a list of integers representing the shape of the provided ValueInfoProto"""
|
|
46
40
|
return [
|
|
47
41
|
value_info.type.tensor_type.shape.dim[d].dim_value
|
|
48
42
|
for d in range(len(value_info.type.tensor_type.shape.dim))
|
|
@@ -135,8 +129,7 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
135
129
|
check_expectations(m1.graph, m2.graph, m3.graph)
|
|
136
130
|
|
|
137
131
|
def test_case_connect_all_no_name_collision(self) -> None:
|
|
138
|
-
"""
|
|
139
|
-
Tests a simple scenario where two models without overlapping names are merged by
|
|
132
|
+
"""Tests a simple scenario where two models without overlapping names are merged by
|
|
140
133
|
connecting all the outputs in the first models to all the inputs in the second model
|
|
141
134
|
"""
|
|
142
135
|
|
|
@@ -152,8 +145,7 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
152
145
|
self._test_merge_models(M1_DEF, M2_DEF, io_map, check_expectations)
|
|
153
146
|
|
|
154
147
|
def test_case_connect_same_output_twice(self) -> None:
|
|
155
|
-
"""
|
|
156
|
-
Tests a scenario where we merge two models by connecting a single output in the first model
|
|
148
|
+
"""Tests a scenario where we merge two models by connecting a single output in the first model
|
|
157
149
|
to all the inputs in the second
|
|
158
150
|
"""
|
|
159
151
|
|
|
@@ -170,8 +162,7 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
170
162
|
self._test_merge_models(M1_DEF, M2_DEF, io_map, check_expectations)
|
|
171
163
|
|
|
172
164
|
def test_case_connect_same_output_drop_outputs(self) -> None:
|
|
173
|
-
"""
|
|
174
|
-
Tests a scenario where we merge two models by connecting a single output in the first model
|
|
165
|
+
"""Tests a scenario where we merge two models by connecting a single output in the first model
|
|
175
166
|
to all the inputs in the second, while dropping the rest of the outputs in the first model
|
|
176
167
|
"""
|
|
177
168
|
|
|
@@ -190,11 +181,9 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
190
181
|
)
|
|
191
182
|
|
|
192
183
|
def test_case_connect_same_input_output_name(self) -> None:
|
|
193
|
-
"""
|
|
194
|
-
Tests a scenario where we merge two models, where the inputs/outputs connected
|
|
184
|
+
"""Tests a scenario where we merge two models, where the inputs/outputs connected
|
|
195
185
|
are named exactly the same
|
|
196
186
|
"""
|
|
197
|
-
|
|
198
187
|
m1_def = """
|
|
199
188
|
<
|
|
200
189
|
ir_version: 7,
|
|
@@ -226,10 +215,7 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
226
215
|
self._test_merge_models(m1_def, m2_def, io_map, check_expectations)
|
|
227
216
|
|
|
228
217
|
def test_case_drop_inputs_outputs(self) -> None:
|
|
229
|
-
"""
|
|
230
|
-
Tests a scenario where we merge two models, not including some of the inputs/outputs
|
|
231
|
-
"""
|
|
232
|
-
|
|
218
|
+
"""Tests a scenario where we merge two models, not including some of the inputs/outputs"""
|
|
233
219
|
m1_def = """
|
|
234
220
|
<
|
|
235
221
|
ir_version: 7,
|
|
@@ -268,11 +254,9 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
268
254
|
)
|
|
269
255
|
|
|
270
256
|
def test_case_name_collision_prefix(self) -> None:
|
|
271
|
-
"""
|
|
272
|
-
Tests a scenario where we merge two models that have name collisions, but they
|
|
257
|
+
"""Tests a scenario where we merge two models that have name collisions, but they
|
|
273
258
|
are avoided by prefixing the models model.
|
|
274
259
|
"""
|
|
275
|
-
|
|
276
260
|
m1_def = """
|
|
277
261
|
<
|
|
278
262
|
ir_version: 7,
|
|
@@ -297,8 +281,7 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
297
281
|
)
|
|
298
282
|
|
|
299
283
|
def test_case_connect_partially_no_name_collision(self) -> None:
|
|
300
|
-
"""
|
|
301
|
-
Tests a scenario where two models without overlapping names are merged by
|
|
284
|
+
"""Tests a scenario where two models without overlapping names are merged by
|
|
302
285
|
connecting some outputs from the first model to some inputs in the second.
|
|
303
286
|
The remaining inputs/outputs should be present in the combined model
|
|
304
287
|
"""
|
|
@@ -337,9 +320,7 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
337
320
|
self.assertRaises(ValueError, compose.merge_models, m1, m2, io_map=io_map)
|
|
338
321
|
|
|
339
322
|
def test_error_wrong_input_output_name(self) -> None:
|
|
340
|
-
"""
|
|
341
|
-
Tests that providing a non existing output/input name in the io_map argument produces an error.
|
|
342
|
-
"""
|
|
323
|
+
"""Tests that providing a non existing output/input name in the io_map argument produces an error."""
|
|
343
324
|
m1, m2 = _load_model(M1_DEF), _load_model(M2_DEF)
|
|
344
325
|
|
|
345
326
|
self.assertRaises(
|
|
@@ -526,33 +507,23 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
526
507
|
self.assertEqual(_prefixed(prefix, n0.name), n1.name)
|
|
527
508
|
|
|
528
509
|
def test_add_prefix_nodes(self) -> None:
|
|
529
|
-
"""
|
|
530
|
-
Tests renaming nodes only
|
|
531
|
-
"""
|
|
510
|
+
"""Tests renaming nodes only"""
|
|
532
511
|
self._test_add_prefix(rename_nodes=True)
|
|
533
512
|
|
|
534
513
|
def test_add_prefix_edges(self) -> None:
|
|
535
|
-
"""
|
|
536
|
-
Tests prefixing nodes edges. This will also rename inputs/outputs, since the names are shared
|
|
537
|
-
"""
|
|
514
|
+
"""Tests prefixing nodes edges. This will also rename inputs/outputs, since the names are shared"""
|
|
538
515
|
self._test_add_prefix(rename_edges=True)
|
|
539
516
|
|
|
540
517
|
def test_add_prefix_inputs(self) -> None:
|
|
541
|
-
"""
|
|
542
|
-
Tests prefixing graph inputs only. Relevant node edges should be renamed as well
|
|
543
|
-
"""
|
|
518
|
+
"""Tests prefixing graph inputs only. Relevant node edges should be renamed as well"""
|
|
544
519
|
self._test_add_prefix(rename_inputs=True)
|
|
545
520
|
|
|
546
521
|
def test_add_prefix_outputs(self) -> None:
|
|
547
|
-
"""
|
|
548
|
-
Tests prefixing graph outputs only. Relevant node edges should be renamed as well
|
|
549
|
-
"""
|
|
522
|
+
"""Tests prefixing graph outputs only. Relevant node edges should be renamed as well"""
|
|
550
523
|
self._test_add_prefix(rename_outputs=True)
|
|
551
524
|
|
|
552
525
|
def test_add_prefix_attribute_subgraph(self) -> None:
|
|
553
|
-
"""
|
|
554
|
-
Tests prefixing attribute's subgraph. Relevant subgraph should be renamed as well
|
|
555
|
-
"""
|
|
526
|
+
"""Tests prefixing attribute's subgraph. Relevant subgraph should be renamed as well"""
|
|
556
527
|
C = helper.make_tensor_value_info("C", TensorProto.BOOL, [1])
|
|
557
528
|
X = helper.make_tensor_value_info("X", TensorProto.FLOAT, [None, 1])
|
|
558
529
|
Y = helper.make_tensor_value_info("Y", TensorProto.FLOAT, [None, 1])
|
|
@@ -597,20 +568,15 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
597
568
|
self.assertEqual(_prefixed(prefix, output_n0), output_n1)
|
|
598
569
|
|
|
599
570
|
def test_add_prefix_all(self) -> None:
|
|
600
|
-
"""
|
|
601
|
-
Tests prefixing all names in the graph
|
|
602
|
-
"""
|
|
571
|
+
"""Tests prefixing all names in the graph"""
|
|
603
572
|
self._test_add_prefix(True, True, True, True, True, True)
|
|
604
573
|
|
|
605
574
|
def test_add_prefix_inplace(self) -> None:
|
|
606
|
-
"""
|
|
607
|
-
Tests prefixing inplace
|
|
608
|
-
"""
|
|
575
|
+
"""Tests prefixing inplace"""
|
|
609
576
|
self._test_add_prefix(inplace=True)
|
|
610
577
|
|
|
611
578
|
def test_expand_out_dim(self) -> None:
|
|
612
|
-
"""
|
|
613
|
-
Tests expanding output dimensions. The resulting graph should have the same output names,
|
|
579
|
+
"""Tests expanding output dimensions. The resulting graph should have the same output names,
|
|
614
580
|
but with one more dimension at the specified index.
|
|
615
581
|
"""
|
|
616
582
|
m1 = _load_model(M1_DEF)
|
|
@@ -768,46 +734,34 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
768
734
|
self.assertEqual(0, len(overlap))
|
|
769
735
|
|
|
770
736
|
def test_overlapping_input_names(self) -> None:
|
|
771
|
-
"""
|
|
772
|
-
Tests error checking when the name of the inputs overlaps
|
|
773
|
-
"""
|
|
737
|
+
"""Tests error checking when the name of the inputs overlaps"""
|
|
774
738
|
self._test_overlapping_names(inputs0=["i0", "i1"], inputs1=["i1", "i2"])
|
|
775
739
|
|
|
776
740
|
def test_overlapping_output_names(self) -> None:
|
|
777
|
-
"""
|
|
778
|
-
Tests error checking when the name of the output overlaps
|
|
779
|
-
"""
|
|
741
|
+
"""Tests error checking when the name of the output overlaps"""
|
|
780
742
|
self._test_overlapping_names(outputs0=["o0", "o1"], outputs1=["o1", "o2"])
|
|
781
743
|
|
|
782
744
|
def test_overlapping_value_info_names(self) -> None:
|
|
783
|
-
"""
|
|
784
|
-
Tests error checking when the name of value_info entries overlaps
|
|
785
|
-
"""
|
|
745
|
+
"""Tests error checking when the name of value_info entries overlaps"""
|
|
786
746
|
self._test_overlapping_names(
|
|
787
747
|
value_info0=["vi0", "vi1"], value_info1=["vi1", "vi2"]
|
|
788
748
|
)
|
|
789
749
|
|
|
790
750
|
def test_overlapping_initializer_names(self) -> None:
|
|
791
|
-
"""
|
|
792
|
-
Tests error checking when the name of initializer entries overlaps
|
|
793
|
-
"""
|
|
751
|
+
"""Tests error checking when the name of initializer entries overlaps"""
|
|
794
752
|
self._test_overlapping_names(
|
|
795
753
|
initializer0=["init0", "init1"], initializer1=["init1", "init2"]
|
|
796
754
|
)
|
|
797
755
|
|
|
798
756
|
def test_overlapping_sparse_initializer_names(self) -> None:
|
|
799
|
-
"""
|
|
800
|
-
Tests error checking when the name of sparse_initializer entries overlaps
|
|
801
|
-
"""
|
|
757
|
+
"""Tests error checking when the name of sparse_initializer entries overlaps"""
|
|
802
758
|
self._test_overlapping_names(
|
|
803
759
|
sparse_initializer0=["sparse_init0", "sparse_init1"],
|
|
804
760
|
sparse_initializer1=["sparse_init1", "sparse_init2"],
|
|
805
761
|
)
|
|
806
762
|
|
|
807
763
|
def test_overlapping_function_names(self) -> None:
|
|
808
|
-
"""
|
|
809
|
-
Tests error checking when the name of local function entries overlaps
|
|
810
|
-
"""
|
|
764
|
+
"""Tests error checking when the name of local function entries overlaps"""
|
|
811
765
|
ops = [helper.make_opsetid("", 10), helper.make_opsetid("local", 10)]
|
|
812
766
|
|
|
813
767
|
def _make_function(
|
|
@@ -944,9 +898,7 @@ class TestComposeFunctions(unittest.TestCase):
|
|
|
944
898
|
)
|
|
945
899
|
|
|
946
900
|
def test_merge_drop_unnecessary_initializers_and_value_info(self) -> None:
|
|
947
|
-
"""
|
|
948
|
-
Tests automatic removal of initializers when merging graphs
|
|
949
|
-
"""
|
|
901
|
+
"""Tests automatic removal of initializers when merging graphs"""
|
|
950
902
|
ops = [helper.make_opsetid("", 10)]
|
|
951
903
|
|
|
952
904
|
g = GraphProto()
|
onnx/test/cpp/inliner_test.cc
CHANGED
|
@@ -34,7 +34,7 @@ static void InlineFunctions(ModelProto& model, const char* input, const inliner:
|
|
|
34
34
|
inliner::InlineLocalFunctions(model, true);
|
|
35
35
|
// std::cout << "After inlining:\n" << ProtoToString(model) << "\n";
|
|
36
36
|
|
|
37
|
-
// The following will ensure basic
|
|
37
|
+
// The following will ensure basic safety checks hold after inlining, including
|
|
38
38
|
// absence of duplicate names (multiple assignments to same name).
|
|
39
39
|
checker::check_model(model, true, true);
|
|
40
40
|
}
|
|
@@ -80,6 +80,46 @@ square (x) => (y) {
|
|
|
80
80
|
ASSERT_EQ(num_functions, 0);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
// Test that inlining processes subgraphs.
|
|
84
|
+
TEST(FunctionInliner, SubgraphTest) {
|
|
85
|
+
const char* code = R"ONNX(
|
|
86
|
+
<
|
|
87
|
+
ir_version: 8,
|
|
88
|
+
opset_import: [ "" : 10, "local" : 1 ]
|
|
89
|
+
>
|
|
90
|
+
agraph (bool cond, float[N] X) => (float[N] Y)
|
|
91
|
+
{
|
|
92
|
+
Y = If (cond) <
|
|
93
|
+
then_branch = then_graph () => (y) {
|
|
94
|
+
y = local.square (X)
|
|
95
|
+
},
|
|
96
|
+
else_branch = else_graph () => (y) {
|
|
97
|
+
y = local.square (X)
|
|
98
|
+
}
|
|
99
|
+
>
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
<
|
|
103
|
+
opset_import: [ "" : 10 ],
|
|
104
|
+
domain: "local",
|
|
105
|
+
doc_string: "Function square."
|
|
106
|
+
>
|
|
107
|
+
square (x) => (y) {
|
|
108
|
+
y = Mul (x, x)
|
|
109
|
+
}
|
|
110
|
+
)ONNX";
|
|
111
|
+
|
|
112
|
+
ModelProto model;
|
|
113
|
+
InlineFunctions(model, code);
|
|
114
|
+
auto& if_node = model.graph().node(0);
|
|
115
|
+
auto& graph1 = if_node.attribute(0).g();
|
|
116
|
+
ASSERT_EQ(graph1.node(0).op_type(), "Mul");
|
|
117
|
+
auto& graph2 = if_node.attribute(1).g();
|
|
118
|
+
ASSERT_EQ(graph2.node(0).op_type(), "Mul");
|
|
119
|
+
auto num_functions = model.functions_size();
|
|
120
|
+
ASSERT_EQ(num_functions, 0);
|
|
121
|
+
}
|
|
122
|
+
|
|
83
123
|
TEST(FunctionInliner, Nested) {
|
|
84
124
|
const char* code = R"ONNX(
|
|
85
125
|
<ir_version: 8, opset_import: [ "" : 17, "local" : 1 ]>
|
|
@@ -132,6 +172,41 @@ foo (x) => (y) {
|
|
|
132
172
|
InlineFunctions(model, code);
|
|
133
173
|
}
|
|
134
174
|
|
|
175
|
+
TEST(FunctionInliner, ValueInfoPropagation) {
|
|
176
|
+
const char* code = R"ONNX(
|
|
177
|
+
<ir_version: 10, opset_import: [ "" : 17, "local" : 1 ]>
|
|
178
|
+
agraph (float[N] X) => (float[N] Y)
|
|
179
|
+
{
|
|
180
|
+
result = local.foo (X)
|
|
181
|
+
Y = Abs (result)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
<opset_import: [ "" : 17, "local" : 1 ], domain: "local">
|
|
185
|
+
foo (x) => (y)
|
|
186
|
+
<float[N] temp> {
|
|
187
|
+
temp = Add(x, x)
|
|
188
|
+
y = Neg (temp)
|
|
189
|
+
}
|
|
190
|
+
)ONNX";
|
|
191
|
+
|
|
192
|
+
ModelProto model;
|
|
193
|
+
InlineFunctions(model, code);
|
|
194
|
+
// Check that valueinfo is propagated fron function to main graph.
|
|
195
|
+
auto& graph = model.graph();
|
|
196
|
+
auto& temp_new_name = graph.node(0).output(0);
|
|
197
|
+
auto& valueinfos = graph.value_info();
|
|
198
|
+
for (auto& valueinfo : valueinfos) {
|
|
199
|
+
if (valueinfo.name() == temp_new_name) {
|
|
200
|
+
ASSERT_TRUE(valueinfo.has_type());
|
|
201
|
+
ASSERT_TRUE(valueinfo.type().has_tensor_type());
|
|
202
|
+
ASSERT_TRUE(valueinfo.type().tensor_type().has_shape());
|
|
203
|
+
ASSERT_TRUE(valueinfo.type().tensor_type().shape().dim_size() == 1);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
ASSERT_TRUE(false) << "ValueInfo not found";
|
|
208
|
+
}
|
|
209
|
+
|
|
135
210
|
TEST(FunctionInliner, TwoCallsToSameFunction) {
|
|
136
211
|
const char* code = R"ONNX(
|
|
137
212
|
<ir_version: 8, opset_import: [ "" : 17, "local" : 1 ]>
|
onnx/test/cpp/ir_test.cc
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Copyright (c) ONNX Project Contributors
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#include <iostream>
|
|
8
|
+
|
|
9
|
+
#include "gtest/gtest.h"
|
|
10
|
+
#include "onnx/common/ir.h"
|
|
11
|
+
#include "onnx/common/ir_pb_converter.h"
|
|
12
|
+
#include "onnx/defs/printer.h"
|
|
13
|
+
|
|
14
|
+
namespace ONNX_NAMESPACE {
|
|
15
|
+
namespace Test {
|
|
16
|
+
|
|
17
|
+
static bool IsValidIdentifier(const std::string& name) {
|
|
18
|
+
if (name.empty()) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
if (!isalpha(name[0]) && name[0] != '_') {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
for (size_t i = 1; i < name.size(); ++i) {
|
|
25
|
+
if (!isalnum(name[i]) && name[i] != '_') {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
TEST(IR, ValidIdentifierTest) {
|
|
33
|
+
Graph* g = new Graph();
|
|
34
|
+
g->setName("test");
|
|
35
|
+
Value* x = g->addInput();
|
|
36
|
+
x->setUniqueName("x");
|
|
37
|
+
x->setElemType(ONNX_NAMESPACE::TensorProto_DataType_FLOAT);
|
|
38
|
+
x->setSizes({Dimension("M"), Dimension("N")});
|
|
39
|
+
Node* node1 = g->create(kNeg, 1);
|
|
40
|
+
node1->addInput(x);
|
|
41
|
+
g->appendNode(node1);
|
|
42
|
+
Value* temp1 = node1->outputs()[0];
|
|
43
|
+
Node* node2 = g->create(kNeg, 1);
|
|
44
|
+
node2->addInput(temp1);
|
|
45
|
+
g->appendNode(node2);
|
|
46
|
+
Value* y = node2->outputs()[0];
|
|
47
|
+
g->registerOutput(y);
|
|
48
|
+
|
|
49
|
+
ModelProto model;
|
|
50
|
+
ExportModelProto(&model, std::shared_ptr<Graph>(g));
|
|
51
|
+
|
|
52
|
+
for (auto& node : model.graph().node()) {
|
|
53
|
+
for (auto& name : node.output()) {
|
|
54
|
+
EXPECT_TRUE(IsValidIdentifier(name));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
} // namespace Test
|
|
60
|
+
} // namespace ONNX_NAMESPACE
|
onnx/test/cpp/parser_test.cc
CHANGED
|
@@ -363,6 +363,86 @@ f (y, z) => (w)
|
|
|
363
363
|
EXPECT_EQ(fp.opset_import_size(), 1);
|
|
364
364
|
}
|
|
365
365
|
|
|
366
|
+
TEST(ParserTest, FunctionValueInfoTest) {
|
|
367
|
+
const char* code = R"ONNX(
|
|
368
|
+
<
|
|
369
|
+
opset_import: [ "" : 10 ],
|
|
370
|
+
domain: "ai.onnx.ml",
|
|
371
|
+
doc_string: "A function test case."
|
|
372
|
+
>
|
|
373
|
+
f (float[N] y, float[N] z) => (float[N] w)
|
|
374
|
+
{
|
|
375
|
+
x = Add(y, z)
|
|
376
|
+
w = Mul(x, y)
|
|
377
|
+
}
|
|
378
|
+
)ONNX";
|
|
379
|
+
|
|
380
|
+
FunctionProto fp;
|
|
381
|
+
Parse(fp, code);
|
|
382
|
+
|
|
383
|
+
EXPECT_EQ(fp.input_size(), 2);
|
|
384
|
+
EXPECT_EQ(fp.output_size(), 1);
|
|
385
|
+
ASSERT_EQ(fp.value_info_size(), 3);
|
|
386
|
+
EXPECT_EQ(fp.value_info(0).name(), "y");
|
|
387
|
+
EXPECT_EQ(fp.value_info(1).name(), "z");
|
|
388
|
+
EXPECT_EQ(fp.value_info(2).name(), "w");
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
TEST(ParserTest, FunctionValueInfoTest2) {
|
|
392
|
+
const char* code = R"ONNX(
|
|
393
|
+
<
|
|
394
|
+
opset_import: [ "" : 10 ],
|
|
395
|
+
domain: "ai.onnx.ml",
|
|
396
|
+
doc_string: "A function test case."
|
|
397
|
+
>
|
|
398
|
+
f (float[N] y, float[N] z) => (float[N] w)
|
|
399
|
+
<float[N] x>
|
|
400
|
+
{
|
|
401
|
+
x = Add(y, z)
|
|
402
|
+
w = Mul(x, y)
|
|
403
|
+
}
|
|
404
|
+
)ONNX";
|
|
405
|
+
|
|
406
|
+
FunctionProto fp;
|
|
407
|
+
Parse(fp, code);
|
|
408
|
+
|
|
409
|
+
EXPECT_EQ(fp.input_size(), 2);
|
|
410
|
+
EXPECT_EQ(fp.value_info_size(), 4);
|
|
411
|
+
ASSERT_EQ(fp.output_size(), 1);
|
|
412
|
+
EXPECT_EQ(fp.value_info(0).name(), "y");
|
|
413
|
+
EXPECT_EQ(fp.value_info(1).name(), "z");
|
|
414
|
+
EXPECT_EQ(fp.value_info(2).name(), "w");
|
|
415
|
+
EXPECT_EQ(fp.value_info(3).name(), "x");
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
TEST(ParserTest, FunctionValueInfoTest3) {
|
|
419
|
+
const char* code = R"ONNX(
|
|
420
|
+
<
|
|
421
|
+
opset_import: [ "" : 10 ],
|
|
422
|
+
domain: "ai.onnx.ml",
|
|
423
|
+
doc_string: "A function test case."
|
|
424
|
+
>
|
|
425
|
+
f (float[N] y, z) => (float[N] w)
|
|
426
|
+
<float[N] x, float[N] t>
|
|
427
|
+
{
|
|
428
|
+
x = Add(y, z)
|
|
429
|
+
t = Add(x, x)
|
|
430
|
+
w = Mul(t, y)
|
|
431
|
+
}
|
|
432
|
+
)ONNX";
|
|
433
|
+
|
|
434
|
+
FunctionProto fp;
|
|
435
|
+
Parse(fp, code);
|
|
436
|
+
|
|
437
|
+
EXPECT_EQ(fp.input_size(), 2);
|
|
438
|
+
ASSERT_EQ(fp.value_info_size(), 4);
|
|
439
|
+
EXPECT_EQ(fp.output_size(), 1);
|
|
440
|
+
EXPECT_EQ(fp.value_info(0).name(), "y");
|
|
441
|
+
EXPECT_EQ(fp.value_info(1).name(), "w");
|
|
442
|
+
EXPECT_EQ(fp.value_info(2).name(), "x");
|
|
443
|
+
EXPECT_EQ(fp.value_info(3).name(), "t");
|
|
444
|
+
}
|
|
445
|
+
|
|
366
446
|
TEST(ParserTest, InitializerTest) {
|
|
367
447
|
const char* code = R"ONNX(
|
|
368
448
|
agraph (float y = {1.0}, float[N] z) => (float[N] w)
|
|
@@ -557,5 +637,31 @@ TEST(ParserTest, TypesModelTest2) {
|
|
|
557
637
|
CheckModel(code);
|
|
558
638
|
}
|
|
559
639
|
|
|
640
|
+
TEST(ParserTest, ExternalDataTest) {
|
|
641
|
+
const char* code = R"ONNX(
|
|
642
|
+
agraph (float y = {1.0}, float[N] z) => (w) <
|
|
643
|
+
float[3, 2] m1 = ["location": "weight_1.bin", "offset": "17"],
|
|
644
|
+
float[2, 1] m2 = {1.0, 2.0}
|
|
645
|
+
>
|
|
646
|
+
{
|
|
647
|
+
x = Add(y, z)
|
|
648
|
+
m = Mul(m1, m1)
|
|
649
|
+
}
|
|
650
|
+
)ONNX";
|
|
651
|
+
|
|
652
|
+
GraphProto graph;
|
|
653
|
+
Parse(graph, code);
|
|
654
|
+
|
|
655
|
+
EXPECT_EQ(graph.input_size(), 2);
|
|
656
|
+
EXPECT_EQ(graph.output_size(), 1);
|
|
657
|
+
EXPECT_EQ(graph.initializer_size(), 3); // m1, m2
|
|
658
|
+
EXPECT_EQ(graph.value_info_size(), 0); // x
|
|
659
|
+
EXPECT_EQ(graph.initializer().Get(1).data_location(), TensorProto_DataLocation::TensorProto_DataLocation_EXTERNAL);
|
|
660
|
+
EXPECT_EQ(graph.initializer().Get(1).external_data().Get(0).key(), "location");
|
|
661
|
+
EXPECT_EQ(graph.initializer().Get(1).external_data().Get(0).value(), "weight_1.bin");
|
|
662
|
+
EXPECT_EQ(graph.initializer().Get(1).external_data().Get(1).key(), "offset");
|
|
663
|
+
EXPECT_EQ(graph.initializer().Get(1).external_data().Get(1).value(), "17");
|
|
664
|
+
}
|
|
665
|
+
|
|
560
666
|
} // namespace Test
|
|
561
667
|
} // namespace ONNX_NAMESPACE
|
onnx/test/function_test.py
CHANGED
|
@@ -25,8 +25,7 @@ class TestFunction(unittest.TestCase):
|
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
def test_extract_model_with_local_function(self) -> None:
|
|
28
|
-
r"""
|
|
29
|
-
# 1. build a model with graph below. extract models with output combinations
|
|
28
|
+
r"""# 1. build a model with graph below. extract models with output combinations
|
|
30
29
|
# 2. validate extracted models' local functions
|
|
31
30
|
#
|
|
32
31
|
# model graph:
|
|
@@ -53,7 +52,6 @@ class TestFunction(unittest.TestCase):
|
|
|
53
52
|
# c
|
|
54
53
|
#
|
|
55
54
|
"""
|
|
56
|
-
|
|
57
55
|
# function common
|
|
58
56
|
func_domain = "local"
|
|
59
57
|
func_opset_imports = [onnx.helper.make_opsetid("", 14)]
|
onnx/test/helper_test.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
import itertools
|
|
6
7
|
import random
|
|
7
8
|
import struct
|
|
8
9
|
import unittest
|
|
@@ -11,6 +12,7 @@ from typing import Any, List, Tuple
|
|
|
11
12
|
import numpy as np
|
|
12
13
|
import parameterized
|
|
13
14
|
import pytest
|
|
15
|
+
import version_utils
|
|
14
16
|
|
|
15
17
|
from onnx import (
|
|
16
18
|
AttributeProto,
|
|
@@ -25,6 +27,7 @@ from onnx import (
|
|
|
25
27
|
helper,
|
|
26
28
|
numpy_helper,
|
|
27
29
|
)
|
|
30
|
+
from onnx.reference.op_run import to_array_extended
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
class TestHelperAttributeFunctions(unittest.TestCase):
|
|
@@ -403,11 +406,13 @@ class TestHelperNodeFunctions(unittest.TestCase):
|
|
|
403
406
|
test([("", 18)], 8)
|
|
404
407
|
test([("", 19)], 9)
|
|
405
408
|
test([("", 20)], 9)
|
|
409
|
+
test([("", 21)], 10)
|
|
406
410
|
# standard opset can be referred to using empty-string or "ai.onnx"
|
|
407
411
|
test([("ai.onnx", 9)], 4)
|
|
408
412
|
test([("ai.onnx.ml", 2)], 6)
|
|
409
413
|
test([("ai.onnx.ml", 3)], 8)
|
|
410
414
|
test([("ai.onnx.ml", 4)], 9)
|
|
415
|
+
test([("ai.onnx.ml", 5)], 10)
|
|
411
416
|
test([("ai.onnx.training", 1)], 7)
|
|
412
417
|
# helper should pick *max* IR version required from all opsets specified.
|
|
413
418
|
test([("", 10), ("ai.onnx.ml", 2)], 6)
|
|
@@ -486,10 +491,13 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
486
491
|
|
|
487
492
|
def test_make_float8e4m3fnuz_tensor(self) -> None:
|
|
488
493
|
y = helper.make_tensor(
|
|
489
|
-
"zero_point",
|
|
494
|
+
"zero_point",
|
|
495
|
+
TensorProto.FLOAT8E4M3FNUZ,
|
|
496
|
+
[7],
|
|
497
|
+
[0, 0.5, 1, 50000, 10.1, -0.00001, 0.00001],
|
|
490
498
|
)
|
|
491
499
|
ynp = numpy_helper.to_array(y)
|
|
492
|
-
expected = np.array([0, 0.5, 1, 240, 10], dtype=np.float32)
|
|
500
|
+
expected = np.array([0, 0.5, 1, 240, 10, 0, 0], dtype=np.float32)
|
|
493
501
|
np.testing.assert_equal(expected, ynp)
|
|
494
502
|
|
|
495
503
|
def test_make_float8e5m2_tensor(self) -> None:
|
|
@@ -502,10 +510,13 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
502
510
|
|
|
503
511
|
def test_make_float8e5m2fnuz_tensor(self) -> None:
|
|
504
512
|
y = helper.make_tensor(
|
|
505
|
-
"zero_point",
|
|
513
|
+
"zero_point",
|
|
514
|
+
TensorProto.FLOAT8E5M2FNUZ,
|
|
515
|
+
[7],
|
|
516
|
+
[0, 0.5, 1, 50000, 96, -0.0000001, 0.0000001],
|
|
506
517
|
)
|
|
507
518
|
ynp = numpy_helper.to_array(y)
|
|
508
|
-
expected = np.array([0, 0.5, 1, 49152, 96], dtype=np.float32)
|
|
519
|
+
expected = np.array([0, 0.5, 1, 49152, 96, 0, 0], dtype=np.float32)
|
|
509
520
|
np.testing.assert_equal(expected, ynp)
|
|
510
521
|
|
|
511
522
|
def test_make_bfloat16_tensor_raw(self) -> None:
|
|
@@ -626,6 +637,51 @@ class TestHelperTensorFunctions(unittest.TestCase):
|
|
|
626
637
|
ynp = numpy_helper.to_array(y)
|
|
627
638
|
np.testing.assert_equal(expected, ynp)
|
|
628
639
|
|
|
640
|
+
@parameterized.parameterized.expand(
|
|
641
|
+
itertools.product(
|
|
642
|
+
(TensorProto.UINT4, TensorProto.INT4),
|
|
643
|
+
((5, 4, 6), (4, 6, 5), (3, 3), (1,), (2**10,)),
|
|
644
|
+
)
|
|
645
|
+
)
|
|
646
|
+
@unittest.skipIf(
|
|
647
|
+
version_utils.numpy_older_than("1.22.0"),
|
|
648
|
+
"The test requires numpy 1.22.0 or later",
|
|
649
|
+
)
|
|
650
|
+
def test_make_4bit_tensor(self, dtype, dims) -> None:
|
|
651
|
+
type_range = {
|
|
652
|
+
TensorProto.UINT4: (0, 15),
|
|
653
|
+
TensorProto.INT4: (-8, 7),
|
|
654
|
+
}
|
|
655
|
+
data = np.random.randint(
|
|
656
|
+
type_range[dtype][0], high=type_range[dtype][1] + 1, size=dims
|
|
657
|
+
)
|
|
658
|
+
y = helper.make_tensor("y", dtype, data.shape, data)
|
|
659
|
+
ynp = to_array_extended(y)
|
|
660
|
+
np.testing.assert_equal(data, ynp)
|
|
661
|
+
|
|
662
|
+
@parameterized.parameterized.expand(
|
|
663
|
+
itertools.product(
|
|
664
|
+
(TensorProto.UINT4, TensorProto.INT4), ((5, 4, 6), (4, 6, 5), (3, 3), (1,))
|
|
665
|
+
)
|
|
666
|
+
)
|
|
667
|
+
def test_make_4bit_raw_tensor(self, dtype, dims) -> None:
|
|
668
|
+
type_range = {
|
|
669
|
+
TensorProto.UINT4: (0, 15),
|
|
670
|
+
TensorProto.INT4: (-8, 7),
|
|
671
|
+
}
|
|
672
|
+
data = np.random.randint(
|
|
673
|
+
type_range[dtype][0], high=type_range[dtype][1] + 1, size=dims
|
|
674
|
+
)
|
|
675
|
+
packed_data = helper.pack_float32_to_4bit(
|
|
676
|
+
data, signed=(dtype == TensorProto.INT4)
|
|
677
|
+
)
|
|
678
|
+
|
|
679
|
+
y = helper.make_tensor(
|
|
680
|
+
"packed_int4", dtype, dims, packed_data.tobytes(), raw=True
|
|
681
|
+
)
|
|
682
|
+
ynp = numpy_helper.to_array(y)
|
|
683
|
+
np.testing.assert_equal(data, ynp)
|
|
684
|
+
|
|
629
685
|
def test_make_sparse_tensor(self) -> None:
|
|
630
686
|
values = [1.1, 2.2, 3.3, 4.4, 5.5]
|
|
631
687
|
values_tensor = helper.make_tensor(
|
|
@@ -820,6 +876,8 @@ class TestPrintableGraph(unittest.TestCase):
|
|
|
820
876
|
TensorProto.FLOAT8E4M3FNUZ,
|
|
821
877
|
TensorProto.FLOAT8E5M2,
|
|
822
878
|
TensorProto.FLOAT8E5M2FNUZ,
|
|
879
|
+
TensorProto.UINT4,
|
|
880
|
+
TensorProto.INT4,
|
|
823
881
|
TensorProto.STRING,
|
|
824
882
|
TensorProto.COMPLEX64,
|
|
825
883
|
TensorProto.COMPLEX128,
|
|
@@ -850,6 +908,8 @@ def test_make_tensor_vals(tensor_dtype: int) -> None:
|
|
|
850
908
|
TensorProto.FLOAT8E4M3FNUZ,
|
|
851
909
|
TensorProto.FLOAT8E5M2,
|
|
852
910
|
TensorProto.FLOAT8E5M2FNUZ,
|
|
911
|
+
TensorProto.UINT4,
|
|
912
|
+
TensorProto.INT4,
|
|
853
913
|
}
|
|
854
914
|
],
|
|
855
915
|
ids=lambda tensor_dtype: helper.tensor_dtype_to_string(tensor_dtype),
|