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/hub.py
CHANGED
|
@@ -27,8 +27,7 @@ else:
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class ModelInfo:
|
|
30
|
-
"""
|
|
31
|
-
A class to represent a model's property and metadata in the ONNX Hub.
|
|
30
|
+
"""A class to represent a model's property and metadata in the ONNX Hub.
|
|
32
31
|
It extracts model name, path, sha, tags, etc. from the passed in raw_model_info dict.
|
|
33
32
|
|
|
34
33
|
Attributes:
|
|
@@ -41,8 +40,9 @@ class ModelInfo:
|
|
|
41
40
|
"""
|
|
42
41
|
|
|
43
42
|
def __init__(self, raw_model_info: Dict[str, Any]) -> None:
|
|
44
|
-
"""
|
|
45
|
-
|
|
43
|
+
"""Initializer.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
46
|
raw_model_info: A JSON dict containing the model info.
|
|
47
47
|
"""
|
|
48
48
|
self.model = cast(str, raw_model_info["model"])
|
|
@@ -68,28 +68,26 @@ class ModelInfo:
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
def set_dir(new_dir: str) -> None:
|
|
71
|
-
"""
|
|
72
|
-
Sets the current ONNX hub cache location
|
|
71
|
+
"""Sets the current ONNX hub cache location.
|
|
73
72
|
|
|
74
|
-
:
|
|
73
|
+
Args:
|
|
74
|
+
new_dir: Location of new model hub cache.
|
|
75
75
|
"""
|
|
76
76
|
global _ONNX_HUB_DIR # noqa: PLW0603
|
|
77
77
|
_ONNX_HUB_DIR = new_dir
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
def get_dir() -> str:
|
|
81
|
-
"""
|
|
82
|
-
Gets the current ONNX hub cache location
|
|
81
|
+
"""Gets the current ONNX hub cache location.
|
|
83
82
|
|
|
84
|
-
:
|
|
83
|
+
Returns:
|
|
84
|
+
The location of the ONNX hub model cache.
|
|
85
85
|
"""
|
|
86
86
|
return _ONNX_HUB_DIR
|
|
87
87
|
|
|
88
88
|
|
|
89
89
|
def _parse_repo_info(repo: str) -> Tuple[str, str, str]:
|
|
90
|
-
"""
|
|
91
|
-
Gets the repo owner, name and ref from a repo specification string.
|
|
92
|
-
"""
|
|
90
|
+
"""Gets the repo owner, name and ref from a repo specification string."""
|
|
93
91
|
repo_owner = repo.split(":")[0].split("/")[0]
|
|
94
92
|
repo_name = repo.split(":")[0].split("/")[1]
|
|
95
93
|
if ":" in repo:
|
|
@@ -100,8 +98,7 @@ def _parse_repo_info(repo: str) -> Tuple[str, str, str]:
|
|
|
100
98
|
|
|
101
99
|
|
|
102
100
|
def _verify_repo_ref(repo: str) -> bool:
|
|
103
|
-
"""
|
|
104
|
-
Verifies whether the given model repo can be trusted.
|
|
101
|
+
"""Verifies whether the given model repo can be trusted.
|
|
105
102
|
A model repo can be trusted if it matches onnx/models:main.
|
|
106
103
|
"""
|
|
107
104
|
repo_owner, repo_name, repo_ref = _parse_repo_info(repo)
|
|
@@ -109,13 +106,16 @@ def _verify_repo_ref(repo: str) -> bool:
|
|
|
109
106
|
|
|
110
107
|
|
|
111
108
|
def _get_base_url(repo: str, lfs: bool = False) -> str:
|
|
112
|
-
"""
|
|
113
|
-
Gets the base github url from a repo specification string
|
|
109
|
+
"""Gets the base github url from a repo specification string.
|
|
114
110
|
|
|
115
|
-
:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
Args:
|
|
112
|
+
repo: The location of the model repo in format
|
|
113
|
+
"user/repo[:branch]". If no branch is found will default to
|
|
114
|
+
"main".
|
|
115
|
+
lfs: Whether the url is for downloading lfs models.
|
|
116
|
+
|
|
117
|
+
Returns:
|
|
118
|
+
The base github url for downloading.
|
|
119
119
|
"""
|
|
120
120
|
repo_owner, repo_name, repo_ref = _parse_repo_info(repo)
|
|
121
121
|
|
|
@@ -125,11 +125,11 @@ def _get_base_url(repo: str, lfs: bool = False) -> str:
|
|
|
125
125
|
|
|
126
126
|
|
|
127
127
|
def _download_file(url: str, file_name: str) -> None:
|
|
128
|
-
"""
|
|
129
|
-
Downloads the file with specifed file_name from the url
|
|
128
|
+
"""Downloads the file with specified file_name from the url.
|
|
130
129
|
|
|
131
|
-
:
|
|
132
|
-
|
|
130
|
+
Args:
|
|
131
|
+
url: A url of download link.
|
|
132
|
+
file_name: A specified file name for the downloaded file.
|
|
133
133
|
"""
|
|
134
134
|
chunk_size = 16384 # 1024 * 16
|
|
135
135
|
with urlopen(url) as response, open(file_name, "wb") as f:
|
|
@@ -146,14 +146,19 @@ def list_models(
|
|
|
146
146
|
model: Optional[str] = None,
|
|
147
147
|
tags: Optional[List[str]] = None,
|
|
148
148
|
) -> List[ModelInfo]:
|
|
149
|
-
"""
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
149
|
+
"""Gets the list of model info consistent with a given name and tags
|
|
150
|
+
|
|
151
|
+
Args:
|
|
152
|
+
repo: The location of the model repo in format
|
|
153
|
+
"user/repo[:branch]". If no branch is found will default to
|
|
154
|
+
"main"
|
|
155
|
+
model: The name of the model to search for. If `None`, will
|
|
156
|
+
return all models with matching tags.
|
|
157
|
+
tags: A list of tags to filter models by. If `None`, will return
|
|
158
|
+
all models with matching name.
|
|
159
|
+
|
|
160
|
+
Returns:
|
|
161
|
+
``ModelInfo``s.
|
|
157
162
|
"""
|
|
158
163
|
base_url = _get_base_url(repo)
|
|
159
164
|
manifest_url = base_url + "ONNX_HUB_MANIFEST.json"
|
|
@@ -188,14 +193,19 @@ def list_models(
|
|
|
188
193
|
def get_model_info(
|
|
189
194
|
model: str, repo: str = "onnx/models:main", opset: Optional[int] = None
|
|
190
195
|
) -> ModelInfo:
|
|
191
|
-
"""
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
196
|
+
"""Gets the model info matching the given name and opset.
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
model: The name of the onnx model in the manifest. This field is
|
|
200
|
+
case-sensitive
|
|
201
|
+
repo: The location of the model repo in format
|
|
202
|
+
"user/repo[:branch]". If no branch is found will default to
|
|
203
|
+
"main"
|
|
204
|
+
opset: The opset of the model to get. The default of `None` will
|
|
205
|
+
return the model with largest opset.
|
|
206
|
+
|
|
207
|
+
Returns:
|
|
208
|
+
``ModelInfo``.
|
|
199
209
|
"""
|
|
200
210
|
matching_models = list_models(repo, model)
|
|
201
211
|
if not matching_models:
|
|
@@ -220,16 +230,23 @@ def load(
|
|
|
220
230
|
force_reload: bool = False,
|
|
221
231
|
silent: bool = False,
|
|
222
232
|
) -> Optional[onnx.ModelProto]:
|
|
223
|
-
"""
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
+
"""Downloads a model by name from the onnx model hub.
|
|
234
|
+
|
|
235
|
+
Args:
|
|
236
|
+
model: The name of the onnx model in the manifest. This field is
|
|
237
|
+
case-sensitive
|
|
238
|
+
repo: The location of the model repo in format
|
|
239
|
+
"user/repo[:branch]". If no branch is found will default to
|
|
240
|
+
"main"
|
|
241
|
+
opset: The opset of the model to download. The default of `None`
|
|
242
|
+
automatically chooses the largest opset
|
|
243
|
+
force_reload: Whether to force the model to re-download even if
|
|
244
|
+
its already found in the cache
|
|
245
|
+
silent: Whether to suppress the warning message if the repo is
|
|
246
|
+
not trusted.
|
|
247
|
+
|
|
248
|
+
Returns:
|
|
249
|
+
ModelProto or None
|
|
233
250
|
"""
|
|
234
251
|
selected_model = get_model_info(model, repo, opset)
|
|
235
252
|
local_model_path_arr = selected_model.model_path.split("/")
|
|
@@ -278,16 +295,23 @@ def download_model_with_test_data(
|
|
|
278
295
|
force_reload: bool = False,
|
|
279
296
|
silent: bool = False,
|
|
280
297
|
) -> Optional[str]:
|
|
281
|
-
"""
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
298
|
+
"""Downloads a model along with test data by name from the onnx model hub and returns the directory to which the files have been extracted.
|
|
299
|
+
|
|
300
|
+
Args:
|
|
301
|
+
model: The name of the onnx model in the manifest. This field is
|
|
302
|
+
case-sensitive
|
|
303
|
+
repo: The location of the model repo in format
|
|
304
|
+
"user/repo[:branch]". If no branch is found will default to
|
|
305
|
+
"main"
|
|
306
|
+
opset: The opset of the model to download. The default of `None`
|
|
307
|
+
automatically chooses the largest opset
|
|
308
|
+
force_reload: Whether to force the model to re-download even if
|
|
309
|
+
its already found in the cache
|
|
310
|
+
silent: Whether to suppress the warning message if the repo is
|
|
311
|
+
not trusted.
|
|
312
|
+
|
|
313
|
+
Returns:
|
|
314
|
+
str or None
|
|
291
315
|
"""
|
|
292
316
|
selected_model = get_model_info(model, repo, opset)
|
|
293
317
|
|
|
@@ -361,17 +385,27 @@ def load_composite_model(
|
|
|
361
385
|
force_reload: bool = False,
|
|
362
386
|
silent: bool = False,
|
|
363
387
|
) -> Optional[onnx.ModelProto]:
|
|
364
|
-
"""
|
|
365
|
-
Builds a composite model including data preprocessing by downloading a network and a preprocessing model
|
|
388
|
+
"""Builds a composite model including data preprocessing by downloading a network and a preprocessing model
|
|
366
389
|
and combine it into a single model
|
|
367
390
|
|
|
368
|
-
:
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
391
|
+
Args:
|
|
392
|
+
network_model: The name of the onnx model in the manifest.
|
|
393
|
+
preprocessing_model: The name of the preprocessing model.
|
|
394
|
+
network_repo: The location of the model repo in format
|
|
395
|
+
"user/repo[:branch]". If no branch is found will default to
|
|
396
|
+
"main"
|
|
397
|
+
preprocessing_repo: The location of the proprocessing model repo in format
|
|
398
|
+
"user/repo[:branch]". If no branch is found will default to
|
|
399
|
+
"main"
|
|
400
|
+
opset: The opset of the model to download. The default of `None`
|
|
401
|
+
automatically chooses the largest opset
|
|
402
|
+
force_reload: Whether to force the model to re-download even if
|
|
403
|
+
its already found in the cache
|
|
404
|
+
silent: Whether to suppress the warning message if the repo is
|
|
405
|
+
not trusted.
|
|
406
|
+
|
|
407
|
+
Returns:
|
|
408
|
+
ModelProto or None
|
|
375
409
|
"""
|
|
376
410
|
preprocessing = load(
|
|
377
411
|
preprocessing_model, preprocessing_repo, opset, force_reload, silent
|
onnx/inliner/inliner.cc
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
#include "onnx/common/assertions.h"
|
|
17
17
|
#include "onnx/common/constants.h"
|
|
18
18
|
#include "onnx/common/interned_strings.h"
|
|
19
|
+
#include "onnx/common/proto_util.h"
|
|
19
20
|
#include "onnx/common/visitor.h"
|
|
20
21
|
#include "onnx/shape_inference/attribute_binder.h"
|
|
21
22
|
#include "onnx/shape_inference/implementation.h"
|
|
@@ -28,27 +29,6 @@ namespace { // internal/private API
|
|
|
28
29
|
|
|
29
30
|
using namespace internal;
|
|
30
31
|
|
|
31
|
-
// Function lookup function. Returns true iff lookup is successful, in which case
|
|
32
|
-
// the found FunctionProto is copied into *return_value. The opset version is not
|
|
33
|
-
// a parameter since it is determined by the domain for a given model.
|
|
34
|
-
using FunctionResolver =
|
|
35
|
-
std::function<bool(const std::string& domain, const std::string& op, FunctionProto* return_value)>;
|
|
36
|
-
|
|
37
|
-
// We use a string of the form "domain::name" as the key for a function id.
|
|
38
|
-
using FunctionIdKey = std::string;
|
|
39
|
-
|
|
40
|
-
FunctionIdKey GetFunctionId(const std::string& domain, const std::string& op) {
|
|
41
|
-
return NormalizeDomain(domain) + "::" + op;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
FunctionIdKey GetFunctionId(const FunctionProto& function) {
|
|
45
|
-
return GetFunctionId(function.domain(), function.name());
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
FunctionIdKey GetCalleeId(const NodeProto& node) {
|
|
49
|
-
return GetFunctionId(node.domain(), node.op_type());
|
|
50
|
-
}
|
|
51
|
-
|
|
52
32
|
using OpsetMapBase = std::unordered_map<std::string, int64_t>;
|
|
53
33
|
|
|
54
34
|
// A representation of the opset versions required by a model or a function.
|
|
@@ -287,6 +267,8 @@ class InliningRenamer : private MutableVisitor {
|
|
|
287
267
|
renamer.Bind<true>(*callee.mutable_output(), callnode.output());
|
|
288
268
|
|
|
289
269
|
renamer.VisitFunction(&callee);
|
|
270
|
+
for (auto& v : *callee.mutable_value_info())
|
|
271
|
+
renamer.LookupOrRename(*v.mutable_name(), false);
|
|
290
272
|
}
|
|
291
273
|
};
|
|
292
274
|
|
|
@@ -441,17 +423,43 @@ void ConvertVersion(ModelProto& model, const NodeProto& call_node, FunctionProto
|
|
|
441
423
|
}
|
|
442
424
|
|
|
443
425
|
constexpr int64_t kNoConversion = -1;
|
|
444
|
-
using FunctionMap = std::unordered_map<
|
|
426
|
+
using FunctionMap = std::unordered_map<FunctionImplId, std::pair<const FunctionProto*, int64_t>>;
|
|
445
427
|
|
|
446
428
|
using NodeList = google::protobuf::RepeatedPtrField<NodeProto>;
|
|
447
429
|
|
|
448
|
-
|
|
449
|
-
|
|
430
|
+
/** Utility function used for inlining into a GraphProto.
|
|
431
|
+
* @param graph Mutable graph
|
|
432
|
+
* @param map Map from function-id to function for functions to be inlined
|
|
433
|
+
* @param name_generator Name generator for generating unique names for inlined variables
|
|
434
|
+
* @param model If non-null, the model being inlined into. Used for version conversion.
|
|
435
|
+
* @param inline_count Mutable counter for number of inlined calls. Used for name generation.
|
|
436
|
+
*/
|
|
437
|
+
void InlineFunctions(
|
|
438
|
+
GraphProto& graph,
|
|
439
|
+
const FunctionMap& map,
|
|
440
|
+
NameGenerator& name_generator,
|
|
441
|
+
ModelProto* model,
|
|
442
|
+
int& inline_count);
|
|
443
|
+
|
|
444
|
+
/** Shared utility function used for inlining into either a GraphProto or a FunctionProto.
|
|
445
|
+
* @param nodes Mutable list of nodes (of function or graph)
|
|
446
|
+
* @param value_infos Mutable list of value_infos (of function or graph)
|
|
447
|
+
* @param map Map from function-id to function for functions to be inlined
|
|
448
|
+
* @param name_generator Name generator for generating unique names for inlined variables
|
|
449
|
+
* @param model If non-null, the model being inlined into. Used for version conversion.
|
|
450
|
+
* @param inline_count Mutable counter for number of inlined calls. Used for name generation.
|
|
451
|
+
*/
|
|
452
|
+
void InlineFunctions(
|
|
453
|
+
NodeList& nodes,
|
|
454
|
+
ValueInfoList& value_infos,
|
|
455
|
+
const FunctionMap& map,
|
|
456
|
+
NameGenerator& name_generator,
|
|
457
|
+
ModelProto* model,
|
|
458
|
+
int& inline_count) {
|
|
450
459
|
NodeList original_nodes;
|
|
451
460
|
// Move all nodes into original_nodes
|
|
452
461
|
original_nodes.Swap(&nodes);
|
|
453
462
|
|
|
454
|
-
int inline_count = 0;
|
|
455
463
|
std::function<void(NodeProto & node)> append_node = [&](NodeProto& node) {
|
|
456
464
|
FunctionProto callee;
|
|
457
465
|
auto iter = map.find(GetCalleeId(node));
|
|
@@ -472,6 +480,17 @@ void InlineFunctions(NodeList& nodes, const FunctionMap& map, NameGenerator& nam
|
|
|
472
480
|
callee.name().c_str());
|
|
473
481
|
ConvertVersion(*model, node, callee, target_version);
|
|
474
482
|
}
|
|
483
|
+
std::unordered_set<std::string> actual_parameters;
|
|
484
|
+
for (const auto& x : node.input())
|
|
485
|
+
actual_parameters.insert(x);
|
|
486
|
+
for (const auto& x : node.output())
|
|
487
|
+
actual_parameters.insert(x);
|
|
488
|
+
// Append valueinfos of called function
|
|
489
|
+
for (auto& callee_vi : callee.value_info()) {
|
|
490
|
+
if (actual_parameters.count(callee_vi.name()) == 0) {
|
|
491
|
+
*value_infos.Add() = callee_vi;
|
|
492
|
+
}
|
|
493
|
+
}
|
|
475
494
|
// Append nodes of called function
|
|
476
495
|
for (auto& callee_node : *callee.mutable_node())
|
|
477
496
|
append_node(callee_node);
|
|
@@ -479,6 +498,16 @@ void InlineFunctions(NodeList& nodes, const FunctionMap& map, NameGenerator& nam
|
|
|
479
498
|
// Append node without inlining.
|
|
480
499
|
// TODO: use std::move instead of copying. Use of move doesn't seem to work with
|
|
481
500
|
// protobuf in some platforms/settings. [nodes->Add(std::move(node));]
|
|
501
|
+
|
|
502
|
+
for (auto& attr : *node.mutable_attribute()) {
|
|
503
|
+
if (attr.has_g()) {
|
|
504
|
+
InlineFunctions(*attr.mutable_g(), map, name_generator, model, inline_count);
|
|
505
|
+
}
|
|
506
|
+
for (auto& g : *attr.mutable_graphs()) {
|
|
507
|
+
InlineFunctions(g, map, name_generator, model, inline_count);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
|
|
482
511
|
*nodes.Add() = node;
|
|
483
512
|
}
|
|
484
513
|
};
|
|
@@ -487,16 +516,45 @@ void InlineFunctions(NodeList& nodes, const FunctionMap& map, NameGenerator& nam
|
|
|
487
516
|
}
|
|
488
517
|
}
|
|
489
518
|
|
|
519
|
+
/** Utility function used for inlining into a GraphProto.
|
|
520
|
+
* @param graph Mutable graph
|
|
521
|
+
* @param map Map from function-id to function for functions to be inlined
|
|
522
|
+
* @param name_generator Name generator for generating unique names for inlined variables
|
|
523
|
+
* @param model If non-null, the model being inlined into. Used for version conversion.
|
|
524
|
+
* @param inline_count Mutable counter for number of inlined calls. Used for name generation.
|
|
525
|
+
*/
|
|
526
|
+
void InlineFunctions(
|
|
527
|
+
GraphProto& graph,
|
|
528
|
+
const FunctionMap& map,
|
|
529
|
+
NameGenerator& name_generator,
|
|
530
|
+
ModelProto* model,
|
|
531
|
+
int& inline_count) {
|
|
532
|
+
auto* nodes = graph.mutable_node();
|
|
533
|
+
auto* value_infos = graph.mutable_value_info();
|
|
534
|
+
InlineFunctions(*nodes, *value_infos, map, name_generator, model, inline_count);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/** Utility function used for inlining into a ModelProto.
|
|
538
|
+
* @param model Mutable model
|
|
539
|
+
* @param map Map from function-id to function for functions to be inlined
|
|
540
|
+
*/
|
|
490
541
|
void InlineFunctions(ModelProto& model, FunctionMap& map) {
|
|
542
|
+
int inline_count = 0;
|
|
491
543
|
auto* graph = model.mutable_graph();
|
|
492
544
|
NameGenerator name_generator(*graph);
|
|
493
545
|
auto* nodes = graph->mutable_node();
|
|
494
|
-
|
|
546
|
+
auto* value_infos = graph->mutable_value_info();
|
|
547
|
+
InlineFunctions(*nodes, *value_infos, map, name_generator, &model, inline_count);
|
|
495
548
|
}
|
|
496
549
|
|
|
550
|
+
/** Utility function used for inlining into a FunctionProto.
|
|
551
|
+
* @param function Mutable function
|
|
552
|
+
* @param map Map from function-id to function for functions to be inlined
|
|
553
|
+
*/
|
|
497
554
|
void InlineFunctions(FunctionProto& function, FunctionMap& map) {
|
|
555
|
+
int inline_count = 0;
|
|
498
556
|
NameGenerator name_generator(function);
|
|
499
|
-
InlineFunctions(*function.mutable_node(), map, name_generator, nullptr);
|
|
557
|
+
InlineFunctions(*function.mutable_node(), *function.mutable_value_info(), map, name_generator, nullptr, inline_count);
|
|
500
558
|
}
|
|
501
559
|
|
|
502
560
|
class VectorSet : public FunctionIdSet {
|
|
@@ -546,7 +604,7 @@ void InlineLocalFunctions(ModelProto& model, bool convert_version) {
|
|
|
546
604
|
mismatches.erase(iter);
|
|
547
605
|
}
|
|
548
606
|
if (mismatches.empty()) {
|
|
549
|
-
map[
|
|
607
|
+
map[GetFunctionImplId(function)] = std::pair<const FunctionProto*, int64_t>(&function, target_onnx_version);
|
|
550
608
|
}
|
|
551
609
|
}
|
|
552
610
|
|
|
@@ -556,7 +614,7 @@ void InlineLocalFunctions(ModelProto& model, bool convert_version) {
|
|
|
556
614
|
// opset version. They need to be handled some other way, eg., using a version-adapter.
|
|
557
615
|
auto* local_functions = model.mutable_functions();
|
|
558
616
|
for (auto it = local_functions->begin(); it != local_functions->end();) {
|
|
559
|
-
if (map.count(
|
|
617
|
+
if (map.count(GetFunctionImplId(*it)) > 0)
|
|
560
618
|
it = local_functions->erase(it);
|
|
561
619
|
else
|
|
562
620
|
++it;
|
|
@@ -576,7 +634,7 @@ void InlineSelectedFunctions(ModelProto& model, const FunctionIdSet& to_inline)
|
|
|
576
634
|
if (!model_imports.Add(function))
|
|
577
635
|
ONNX_THROW("Model has functions with incompatible opset versions.");
|
|
578
636
|
if (to_inline.Contains(function.domain(), function.name())) {
|
|
579
|
-
map[
|
|
637
|
+
map[GetFunctionImplId(function)] = std::pair<const FunctionProto*, int64_t>(&function, kNoConversion);
|
|
580
638
|
} else {
|
|
581
639
|
non_inlined_functions.push_back(&function);
|
|
582
640
|
}
|
|
@@ -591,7 +649,7 @@ void InlineSelectedFunctions(ModelProto& model, const FunctionIdSet& to_inline)
|
|
|
591
649
|
// Remove all inlined model-local functions.
|
|
592
650
|
auto* local_functions = model.mutable_functions();
|
|
593
651
|
for (auto it = local_functions->begin(); it != local_functions->end();) {
|
|
594
|
-
if (map.count(
|
|
652
|
+
if (map.count(GetFunctionImplId(*it)) > 0)
|
|
595
653
|
it = local_functions->erase(it);
|
|
596
654
|
else
|
|
597
655
|
++it;
|
onnx/inliner/inliner.h
CHANGED
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
namespace ONNX_NAMESPACE {
|
|
15
15
|
namespace inliner {
|
|
16
16
|
|
|
17
|
+
// IR version 10 introduces overloaded function names. The following APIs to specify
|
|
18
|
+
// functions to be inlined currently allow only specifying (domain, name). Thus,
|
|
19
|
+
// either all overloads of a function are inlined or none.
|
|
20
|
+
// The older-style ids are used below for backward compatibility.
|
|
21
|
+
|
|
17
22
|
// A FunctionId is a pair of strings (domain, function name).
|
|
18
23
|
using FunctionId = std::pair<std::string, std::string>;
|
|
19
24
|
|
onnx/inliner.py
CHANGED
|
@@ -17,6 +17,7 @@ def inline_local_functions(
|
|
|
17
17
|
model: an ONNX ModelProto
|
|
18
18
|
convert_version: if true, try to apply automatic version-conversion to functions requiring a
|
|
19
19
|
different (ONNX) opset version from the model.
|
|
20
|
+
|
|
20
21
|
Returns:
|
|
21
22
|
ModelProto with all calls to model-local functions inlined (recursively)
|
|
22
23
|
"""
|
|
@@ -37,6 +38,7 @@ def inline_selected_functions(
|
|
|
37
38
|
element is a tuple of (function domain, function name).
|
|
38
39
|
exclude: if true, inlines all functions except those specified in function_ids.
|
|
39
40
|
if false, inlines all functions specified in function_ids.
|
|
41
|
+
|
|
40
42
|
Returns:
|
|
41
43
|
ModelProto with all calls to model-local functions inlined (recursively)
|
|
42
44
|
"""
|
onnx/mapping.py
CHANGED
|
@@ -80,6 +80,13 @@ TENSOR_TYPE_MAP = {
|
|
|
80
80
|
int(TensorProto.FLOAT8E5M2FNUZ): TensorDtypeMap(
|
|
81
81
|
np.dtype("float32"), int(TensorProto.UINT8), "TensorProto.FLOAT8E5M2FNUZ"
|
|
82
82
|
),
|
|
83
|
+
# Native numpy does not support uint4/int4 so now use uint8/int8 for these types.
|
|
84
|
+
int(TensorProto.UINT4): TensorDtypeMap(
|
|
85
|
+
np.dtype("uint8"), int(TensorProto.INT32), "TensorProto.UINT4"
|
|
86
|
+
),
|
|
87
|
+
int(TensorProto.INT4): TensorDtypeMap(
|
|
88
|
+
np.dtype("int8"), int(TensorProto.INT32), "TensorProto.INT4"
|
|
89
|
+
),
|
|
83
90
|
}
|
|
84
91
|
|
|
85
92
|
|
|
@@ -154,6 +161,8 @@ _NP_TYPE_TO_TENSOR_TYPE = {
|
|
|
154
161
|
TensorProto.FLOAT8E4M3FNUZ,
|
|
155
162
|
TensorProto.FLOAT8E5M2,
|
|
156
163
|
TensorProto.FLOAT8E5M2FNUZ,
|
|
164
|
+
TensorProto.UINT4,
|
|
165
|
+
TensorProto.INT4,
|
|
157
166
|
)
|
|
158
167
|
}
|
|
159
168
|
|