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
|
@@ -9,13 +9,14 @@ from onnx.reference.op_run import OpRun
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def scatter_elements(data, indices, updates, axis=0, reduction=None): # type: ignore
|
|
12
|
-
"""
|
|
12
|
+
"""Scatter elements.
|
|
13
|
+
|
|
13
14
|
::
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
for 3-dim and axis=0
|
|
16
|
+
output[indices[i][j][k]][j][k] = updates[i][j][k]
|
|
17
|
+
for axis 1
|
|
18
|
+
output[i][indices[i][j][k]][k] = updates[i][j][k]
|
|
19
|
+
and so on.
|
|
19
20
|
"""
|
|
20
21
|
if reduction == "add":
|
|
21
22
|
|
onnx/reference/ops/op_stft.py
CHANGED
|
@@ -28,8 +28,8 @@ def _unsqueeze(a, axis): # type: ignore
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
def _stft(x, fft_length: int, hop_length, n_frames, window, onesided=False): # type: ignore
|
|
31
|
-
"""
|
|
32
|
-
|
|
31
|
+
"""Applies one dimensional FFT with window weights.
|
|
32
|
+
|
|
33
33
|
torch defines the number of frames as:
|
|
34
34
|
`n_frames = 1 + (len - n_fft) // hop_length`.
|
|
35
35
|
"""
|
|
@@ -75,9 +75,7 @@ def _stft(x, fft_length: int, hop_length, n_frames, window, onesided=False): #
|
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
def _istft(x, fft_length: int, hop_length, window, onesided=False): # type: ignore
|
|
78
|
-
"""
|
|
79
|
-
Reverses of `stft`.
|
|
80
|
-
"""
|
|
78
|
+
"""Reverses of `stft`."""
|
|
81
79
|
zero = [0]
|
|
82
80
|
one = [1]
|
|
83
81
|
two = [2]
|
|
@@ -13,8 +13,7 @@ from onnx.reference.op_run import OpRun, RuntimeTypeError
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class StringNormalizer(OpRun):
|
|
16
|
-
"""
|
|
17
|
-
The operator is not really threadsafe as python cannot
|
|
16
|
+
"""The operator is not really threadsafe as python cannot
|
|
18
17
|
play with two locales at the same time. stop words
|
|
19
18
|
should not be implemented here as the tokenization
|
|
20
19
|
usually happens after this steps.
|
|
@@ -129,15 +128,16 @@ class StringNormalizer(OpRun):
|
|
|
129
128
|
|
|
130
129
|
@staticmethod
|
|
131
130
|
def strip_accents_unicode(s): # type: ignore
|
|
132
|
-
"""
|
|
133
|
-
Transforms accentuated unicode symbols into their simple counterpart.
|
|
131
|
+
"""Transforms accentuated unicode symbols into their simple counterpart.
|
|
134
132
|
Source: `sklearn/feature_extraction/text.py
|
|
135
133
|
<https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/
|
|
136
134
|
feature_extraction/text.py#L115>`_.
|
|
137
135
|
|
|
138
|
-
:
|
|
139
|
-
The string to strip
|
|
140
|
-
|
|
136
|
+
Args:
|
|
137
|
+
s: string The string to strip
|
|
138
|
+
|
|
139
|
+
Returns:
|
|
140
|
+
the cleaned string
|
|
141
141
|
"""
|
|
142
142
|
try:
|
|
143
143
|
# If `s` is ASCII-compatible, then it does not contain any accented
|
|
@@ -17,8 +17,8 @@ class IntMap(dict): # type: ignore
|
|
|
17
17
|
self.added_keys = []
|
|
18
18
|
|
|
19
19
|
def emplace(self, key, value):
|
|
20
|
-
if not isinstance(key, int):
|
|
21
|
-
raise TypeError(f"key must be a
|
|
20
|
+
if not isinstance(key, (int, str)):
|
|
21
|
+
raise TypeError(f"key must be a int or str not {type(key)}.")
|
|
22
22
|
if not isinstance(value, NgramPart):
|
|
23
23
|
raise TypeError(f"value must be a NGramPart not {type(value)}.")
|
|
24
24
|
if key not in self:
|
|
@@ -147,11 +147,12 @@ class TfIdfVectorizer(OpRun):
|
|
|
147
147
|
self.output_size_ = max(self.ngram_indexes_) + 1
|
|
148
148
|
self.weights_ = self.weights # type: ignore
|
|
149
149
|
self.pool_int64s_ = self.pool_int64s # type: ignore
|
|
150
|
+
self.pool_strings_ = self.pool_strings # type: ignore
|
|
150
151
|
|
|
151
152
|
self.int64_map_ = NgramPart(-10)
|
|
152
153
|
self.int64_map_.init()
|
|
153
154
|
|
|
154
|
-
total_items = len(self.pool_int64s_)
|
|
155
|
+
total_items = len(self.pool_int64s_ or self.pool_strings_)
|
|
155
156
|
ngram_id = 1 # start with 1, 0 - means no n-gram
|
|
156
157
|
# Load into dictionary only required gram sizes
|
|
157
158
|
ngram_size = 1
|
|
@@ -170,7 +171,7 @@ class TfIdfVectorizer(OpRun):
|
|
|
170
171
|
and ngram_size <= self.max_gram_length_
|
|
171
172
|
):
|
|
172
173
|
ngram_id = populate_grams(
|
|
173
|
-
self.pool_int64s_,
|
|
174
|
+
self.pool_int64s_ or self.pool_strings_,
|
|
174
175
|
start_idx,
|
|
175
176
|
ngrams,
|
|
176
177
|
ngram_size,
|
|
@@ -207,10 +208,8 @@ class TfIdfVectorizer(OpRun):
|
|
|
207
208
|
|
|
208
209
|
w = self.weights_
|
|
209
210
|
if self.weighting_criteria_ == WeightingCriteria.TF:
|
|
210
|
-
i
|
|
211
|
-
for f in frequencies:
|
|
211
|
+
for i, f in enumerate(frequencies):
|
|
212
212
|
Y[i] = f
|
|
213
|
-
i += 1
|
|
214
213
|
elif self.weighting_criteria_ == WeightingCriteria.IDF:
|
|
215
214
|
if len(w) > 0:
|
|
216
215
|
p = 0
|
|
@@ -359,7 +358,7 @@ class TfIdfVectorizer(OpRun):
|
|
|
359
358
|
# TfidfVectorizer returns a zero tensor of shape
|
|
360
359
|
# {b_dim, output_size} when b_dim is the number of received observations
|
|
361
360
|
# and output_size the is the maximum value in ngram_indexes attribute plus 1.
|
|
362
|
-
return self.output_result(B, frequencies) # type: ignore[arg-type]
|
|
361
|
+
return (self.output_result(B, frequencies),) # type: ignore[arg-type]
|
|
363
362
|
|
|
364
363
|
def fn(row_num):
|
|
365
364
|
self.compute_impl(
|
onnx/reference/ops/op_topk.py
CHANGED
|
@@ -9,8 +9,7 @@ from onnx.reference.op_run import OpRun
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def topk_sorted_implementation(X, k, axis, largest): # type: ignore
|
|
12
|
-
"""
|
|
13
|
-
See function `_kneighbors_reduce_func
|
|
12
|
+
"""See function `_kneighbors_reduce_func
|
|
14
13
|
<https://github.com/scikit-learn/scikit-learn/blob/main/
|
|
15
14
|
sklearn/neighbors/_base.py#L304>`_.
|
|
16
15
|
"""
|
|
@@ -52,8 +51,7 @@ def topk_sorted_implementation(X, k, axis, largest): # type: ignore
|
|
|
52
51
|
|
|
53
52
|
class _CommonTopK(OpRun):
|
|
54
53
|
def _common_run(self, data, ink, axis, largest=1): # type: ignore
|
|
55
|
-
"""
|
|
56
|
-
Runtime for operator *TopK*.
|
|
54
|
+
"""Runtime for operator *TopK*.
|
|
57
55
|
The implementation is not the most efficient
|
|
58
56
|
as it sorts everything then extracts the top *k*
|
|
59
57
|
values.
|
|
@@ -72,8 +70,7 @@ class _CommonTopK(OpRun):
|
|
|
72
70
|
|
|
73
71
|
class TopK_1(_CommonTopK):
|
|
74
72
|
def _run(self, data, k=None, axis=None): # type: ignore
|
|
75
|
-
"""
|
|
76
|
-
Runtime for operator *TopK*.
|
|
73
|
+
"""Runtime for operator *TopK*.
|
|
77
74
|
The implementation is not the most efficient
|
|
78
75
|
as it sorts everything then extracts the top *k*
|
|
79
76
|
values.
|
|
@@ -89,8 +86,7 @@ class TopK_1(_CommonTopK):
|
|
|
89
86
|
|
|
90
87
|
class TopK_10(_CommonTopK):
|
|
91
88
|
def _run(self, data, ink, axis=None): # type: ignore
|
|
92
|
-
"""
|
|
93
|
-
Runtime for operator *TopK*.
|
|
89
|
+
"""Runtime for operator *TopK*.
|
|
94
90
|
The implementation is not the most efficient
|
|
95
91
|
as it sorts everything then extracts the top *k*
|
|
96
92
|
values.
|
|
@@ -105,9 +101,11 @@ class TopK_10(_CommonTopK):
|
|
|
105
101
|
|
|
106
102
|
|
|
107
103
|
class TopK_11(_CommonTopK):
|
|
108
|
-
def _run(
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
def _run(
|
|
105
|
+
self, data, ink, axis=None, largest=None, sorted=None # noqa: A002
|
|
106
|
+
): # type: ignore
|
|
107
|
+
"""Runtime for operator *TopK*.
|
|
108
|
+
|
|
111
109
|
The implementation is not the most efficient
|
|
112
110
|
as it sorts everything then extracts the top *k*
|
|
113
111
|
values.
|
onnx/reference/ops/op_unique.py
CHANGED
|
@@ -17,7 +17,7 @@ def _specify_int64(indices, inverse_indices, counts): # type: ignore
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class Unique(OpRun):
|
|
20
|
-
def _run(self, x, axis=None, sorted=None): # type: ignore
|
|
20
|
+
def _run(self, x, axis=None, sorted=None): # type: ignore # noqa: A002
|
|
21
21
|
if axis is None or np.isnan(axis):
|
|
22
22
|
y, indices, inverse_indices, counts = np.unique(x, True, True, True)
|
|
23
23
|
else:
|
|
@@ -9,7 +9,16 @@ import numpy as np
|
|
|
9
9
|
|
|
10
10
|
from onnx import load
|
|
11
11
|
from onnx.defs import onnx_opset_version
|
|
12
|
-
from onnx.
|
|
12
|
+
from onnx.external_data_helper import ExternalDataInfo, uses_external_data
|
|
13
|
+
from onnx.model_container import ModelContainer
|
|
14
|
+
from onnx.onnx_pb import (
|
|
15
|
+
FunctionProto,
|
|
16
|
+
GraphProto,
|
|
17
|
+
ModelProto,
|
|
18
|
+
NodeProto,
|
|
19
|
+
TensorProto,
|
|
20
|
+
TypeProto,
|
|
21
|
+
)
|
|
13
22
|
from onnx.reference.op_run import (
|
|
14
23
|
OpFunctionContextDependant,
|
|
15
24
|
OpRun,
|
|
@@ -21,36 +30,36 @@ from onnx.reference.ops_optimized import optimized_operators
|
|
|
21
30
|
|
|
22
31
|
|
|
23
32
|
class ReferenceEvaluator:
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
|
-
(`ModelProto`, `FunctionProto`, `GraphProto`, `NodeProto`).
|
|
33
|
+
r"""Computes the outputs of an ONNX proto (`ModelProto`, `FunctionProto`, `GraphProto`, `NodeProto`).
|
|
34
|
+
|
|
27
35
|
This is a pure python implementation of ONNX specifications.
|
|
28
36
|
Mismatches may remain between the official specifications and the implementation here.
|
|
29
37
|
In the case of such a mismatch, the official spec overrides this implementation.
|
|
30
38
|
|
|
31
|
-
:
|
|
32
|
-
:class:`onnx.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
on the standard output
|
|
36
|
-
|
|
37
|
-
opsets
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
39
|
+
Args:
|
|
40
|
+
proto: :class:`onnx.ModelProto`, :class:`onnx.GraphProto`,
|
|
41
|
+
:class:`onnx.FunctionProto`, :class:`onnx.NodeProto`,
|
|
42
|
+
filename or bytes
|
|
43
|
+
verbose: display intermediate results on the standard output
|
|
44
|
+
during the execution
|
|
45
|
+
opsets: if *proto* is an instance of *GraphProto*, opsets must
|
|
46
|
+
be defined by a dictionary of
|
|
47
|
+
functions: known onnx functions
|
|
48
|
+
new_ops: this runtime can be used to test the implementations of
|
|
49
|
+
new operators, *new_ops* is a list of classes derived from
|
|
50
|
+
:class:`OpRun <onnx.reference.op_run.OpRun>`, every class
|
|
51
|
+
must define the static attribute `domain`, there may be
|
|
52
|
+
multiple implementations for the same operator, the first
|
|
53
|
+
one in the list is used.
|
|
54
|
+
optimized: some operators have two implementations, a naive one
|
|
55
|
+
corresponding to definition of the mathematical definition
|
|
56
|
+
of the operator, another one more efficient. This is the
|
|
57
|
+
case for operator Conv. The naive version is ten times
|
|
58
|
+
slower than the optimized one using a decomposition into
|
|
59
|
+
*Conv = im2col + Gemm*. If True, all optimized kernels are
|
|
60
|
+
added in `new_ops` and are used instead of the inner
|
|
61
|
+
implementation if list *new_ops* does not already contain
|
|
62
|
+
one.
|
|
54
63
|
|
|
55
64
|
The class maps every node to its associated implementation.
|
|
56
65
|
When a subgraph of a function is met,
|
|
@@ -209,6 +218,13 @@ class ReferenceEvaluator:
|
|
|
209
218
|
new_ops.append(op)
|
|
210
219
|
self.output_types_ = None
|
|
211
220
|
self.input_types_ = None
|
|
221
|
+
|
|
222
|
+
if isinstance(proto, ModelContainer):
|
|
223
|
+
self.container_ = proto
|
|
224
|
+
proto = self.container_.model_proto
|
|
225
|
+
else:
|
|
226
|
+
self.container_ = None
|
|
227
|
+
|
|
212
228
|
if isinstance(proto, str):
|
|
213
229
|
with open(proto, "rb") as f:
|
|
214
230
|
proto = load(f)
|
|
@@ -268,9 +284,8 @@ class ReferenceEvaluator:
|
|
|
268
284
|
if functions is not None:
|
|
269
285
|
for f in functions: # type: ignore
|
|
270
286
|
if isinstance(f, FunctionProto):
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
f, verbose=verbose, functions=existing_functions
|
|
287
|
+
self.functions_[f.domain, f.name] = self.__class__(
|
|
288
|
+
f, verbose=verbose, functions=list(self.functions_.values())
|
|
274
289
|
)
|
|
275
290
|
elif isinstance(f, ReferenceEvaluator):
|
|
276
291
|
onx = f.proto_ # type: ignore
|
|
@@ -294,6 +309,24 @@ class ReferenceEvaluator:
|
|
|
294
309
|
self.new_ops_[key] = cl
|
|
295
310
|
self._init()
|
|
296
311
|
|
|
312
|
+
def retrieve_external_data(self, initializer: TensorProto) -> np.array:
|
|
313
|
+
"""Returns a tensor saved as external."""
|
|
314
|
+
info = ExternalDataInfo(initializer)
|
|
315
|
+
location = info.location
|
|
316
|
+
if self.container_ and self.container_.is_in_memory_external_initializer(
|
|
317
|
+
location
|
|
318
|
+
):
|
|
319
|
+
# It comes from a large container.
|
|
320
|
+
return self.container_[location]
|
|
321
|
+
# Otherwise, the data is on disk.
|
|
322
|
+
if self.container_ is not None:
|
|
323
|
+
raise RuntimeError(
|
|
324
|
+
"ReferenceEvaluator assumes a LargeContainer was loaded with its external tensor."
|
|
325
|
+
)
|
|
326
|
+
raise RuntimeError(
|
|
327
|
+
"An instance of LargeContainer should be created before using ReferenceEvaluator."
|
|
328
|
+
)
|
|
329
|
+
|
|
297
330
|
def _log_arg(self, a: Any) -> Any:
|
|
298
331
|
if isinstance(a, (str, int, float)):
|
|
299
332
|
return a
|
|
@@ -316,33 +349,32 @@ class ReferenceEvaluator:
|
|
|
316
349
|
|
|
317
350
|
@property
|
|
318
351
|
def input_names(self): # type: ignore
|
|
319
|
-
"Returns the input names."
|
|
352
|
+
"""Returns the input names."""
|
|
320
353
|
return self.input_names_
|
|
321
354
|
|
|
322
355
|
@property
|
|
323
356
|
def input_types(self): # type: ignore
|
|
324
|
-
"Returns the input types if any specified."
|
|
357
|
+
"""Returns the input types if any specified."""
|
|
325
358
|
return self.input_types_
|
|
326
359
|
|
|
327
360
|
@property
|
|
328
361
|
def output_names(self): # type: ignore
|
|
329
|
-
"Returns the output names."
|
|
362
|
+
"""Returns the output names."""
|
|
330
363
|
return self.output_names_
|
|
331
364
|
|
|
332
365
|
@property
|
|
333
366
|
def output_types(self): # type: ignore
|
|
334
|
-
"Returns the output types."
|
|
367
|
+
"""Returns the output types."""
|
|
335
368
|
return self.output_types_
|
|
336
369
|
|
|
337
370
|
@property
|
|
338
371
|
def opsets(self): # type: ignore
|
|
339
|
-
"Returns the opsets."
|
|
372
|
+
"""Returns the opsets."""
|
|
340
373
|
return self.opsets_
|
|
341
374
|
|
|
342
375
|
@property
|
|
343
376
|
def has_linked_attribute(self):
|
|
344
|
-
"""
|
|
345
|
-
Checks if the graph has a linked attribute (= an attribute whose value is defined
|
|
377
|
+
"""Checks if the graph has a linked attribute (= an attribute whose value is defined
|
|
346
378
|
by a function attribute.
|
|
347
379
|
"""
|
|
348
380
|
return any(node.has_linked_attribute for node in self.rt_nodes_)
|
|
@@ -364,18 +396,22 @@ class ReferenceEvaluator:
|
|
|
364
396
|
return self.all_types_[name]
|
|
365
397
|
|
|
366
398
|
def _init(self) -> None:
|
|
367
|
-
"""
|
|
368
|
-
Loads the implementation for every node in the graph.
|
|
369
|
-
"""
|
|
399
|
+
"""Loads the implementation for every node in the graph."""
|
|
370
400
|
self.rt_inits_ = {}
|
|
371
401
|
self.rt_nodes_ = []
|
|
372
402
|
for init in self.inits_:
|
|
373
|
-
self.rt_inits_[init.name] =
|
|
403
|
+
self.rt_inits_[init.name] = (
|
|
404
|
+
self.retrieve_external_data(init)
|
|
405
|
+
if uses_external_data(init)
|
|
406
|
+
else to_array_extended(init)
|
|
407
|
+
)
|
|
374
408
|
run_params = {
|
|
375
409
|
"log": lambda pattern, *args: self._log(10, pattern, *args),
|
|
376
410
|
"opsets": self.opsets,
|
|
377
411
|
"verbose": self.verbose,
|
|
378
412
|
"new_ops": self.new_ops_,
|
|
413
|
+
"existing_functions": self.functions_.copy(),
|
|
414
|
+
"evaluator_cls": self.__class__,
|
|
379
415
|
}
|
|
380
416
|
if self.input_types_:
|
|
381
417
|
all_types = {i.name: i.type for i in self.onnx_graph_.input}
|
|
@@ -419,9 +455,7 @@ class ReferenceEvaluator:
|
|
|
419
455
|
def _load_impl( # noqa: PLR0911
|
|
420
456
|
self, node: NodeProto, input_types: Optional[TypeProto] = None
|
|
421
457
|
) -> Any:
|
|
422
|
-
"""
|
|
423
|
-
Loads the implementation for a specified runtime.
|
|
424
|
-
"""
|
|
458
|
+
"""Loads the implementation for a specified runtime."""
|
|
425
459
|
if node.domain not in self.opsets:
|
|
426
460
|
raise RuntimeError(
|
|
427
461
|
f"Domain {node.domain!r} (node type: {node.op_type!r}) "
|
|
@@ -444,7 +478,13 @@ class ReferenceEvaluator:
|
|
|
444
478
|
from onnx.reference.ops import load_op
|
|
445
479
|
|
|
446
480
|
try:
|
|
447
|
-
return load_op(
|
|
481
|
+
return load_op(
|
|
482
|
+
node.domain,
|
|
483
|
+
node.op_type,
|
|
484
|
+
version,
|
|
485
|
+
expand=expand,
|
|
486
|
+
evaluator_cls=self.__class__,
|
|
487
|
+
)
|
|
448
488
|
except RuntimeContextError:
|
|
449
489
|
if input_types is None:
|
|
450
490
|
raise
|
|
@@ -455,6 +495,7 @@ class ReferenceEvaluator:
|
|
|
455
495
|
node=node,
|
|
456
496
|
input_types=input_types, # type: ignore[arg-type]
|
|
457
497
|
expand=expand,
|
|
498
|
+
evaluator_cls=self.__class__,
|
|
458
499
|
)
|
|
459
500
|
|
|
460
501
|
if expand:
|
|
@@ -466,38 +507,52 @@ class ReferenceEvaluator:
|
|
|
466
507
|
if node.domain == "ai.onnx.preview.training":
|
|
467
508
|
from onnx.reference.ops.aionnx_preview_training import load_op as load_op_pt
|
|
468
509
|
|
|
469
|
-
return load_op_pt(
|
|
510
|
+
return load_op_pt(
|
|
511
|
+
node.domain, node.op_type, version, evaluator_cls=self.__class__
|
|
512
|
+
)
|
|
470
513
|
|
|
471
514
|
if node.domain == "experimental":
|
|
472
515
|
from onnx.reference.ops.experimental import load_op as load_op_exp
|
|
473
516
|
|
|
474
|
-
return load_op_exp(
|
|
517
|
+
return load_op_exp(
|
|
518
|
+
node.domain, node.op_type, version, evaluator_cls=self.__class__
|
|
519
|
+
)
|
|
475
520
|
|
|
476
521
|
if node.domain == "ai.onnx.ml":
|
|
477
522
|
from onnx.reference.ops.aionnxml import load_op as load_op_ml
|
|
478
523
|
|
|
479
|
-
return load_op_ml(
|
|
524
|
+
return load_op_ml(
|
|
525
|
+
node.domain, node.op_type, version, evaluator_cls=self.__class__
|
|
526
|
+
)
|
|
480
527
|
|
|
481
528
|
# It has to be a function.
|
|
482
529
|
if key in self.functions_:
|
|
483
530
|
from onnx.reference.ops import load_op
|
|
484
531
|
|
|
485
532
|
impl = self.functions_[key]
|
|
486
|
-
return load_op(
|
|
533
|
+
return load_op(
|
|
534
|
+
node.domain,
|
|
535
|
+
node.op_type,
|
|
536
|
+
version,
|
|
537
|
+
custom=impl,
|
|
538
|
+
evaluator_cls=self.__class__,
|
|
539
|
+
)
|
|
487
540
|
raise NotImplementedError(
|
|
488
541
|
f"Node type {node.op_type!r} from domain {node.domain!r} "
|
|
489
542
|
f"is unknown, known functions: {sorted(self.functions_)}."
|
|
490
543
|
)
|
|
491
544
|
|
|
492
545
|
def run(self, output_names, feed_inputs: Dict[str, Any], attributes: Optional[Dict[str, Any]] = None): # type: ignore
|
|
493
|
-
"""
|
|
494
|
-
Executes the onnx model.
|
|
546
|
+
"""Executes the onnx model.
|
|
495
547
|
|
|
496
|
-
:
|
|
497
|
-
None for all
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
548
|
+
Args:
|
|
549
|
+
output_names: requested outputs by names, None for all
|
|
550
|
+
feed_inputs: dictionary `{ input name: input value }`
|
|
551
|
+
attributes: attributes value if the instance runs a
|
|
552
|
+
FunctionProto
|
|
553
|
+
|
|
554
|
+
Returns:
|
|
555
|
+
list of requested outputs
|
|
501
556
|
"""
|
|
502
557
|
if output_names is None:
|
|
503
558
|
output_names = self.output_names
|
|
@@ -516,6 +571,13 @@ class ReferenceEvaluator:
|
|
|
516
571
|
# step 2: execute nodes
|
|
517
572
|
for node in self.rt_nodes_:
|
|
518
573
|
self._log(1, "%s(%s) -> %s", node.op_type, node.input, node.output)
|
|
574
|
+
for i in node.input:
|
|
575
|
+
if i not in results:
|
|
576
|
+
raise RuntimeError(
|
|
577
|
+
f"Unable to find input {i!r} in known results {sorted(results)}, "
|
|
578
|
+
f"self.rt_inits_ has {sorted(self.rt_inits_)}, "
|
|
579
|
+
f"feed_inputs has {sorted(feed_inputs)}."
|
|
580
|
+
)
|
|
519
581
|
inputs = [results[i] for i in node.input]
|
|
520
582
|
linked_attributes = {}
|
|
521
583
|
if node.has_linked_attribute and attributes:
|
|
@@ -525,19 +587,13 @@ class ReferenceEvaluator:
|
|
|
525
587
|
else:
|
|
526
588
|
outputs = node.run(*inputs, **linked_attributes)
|
|
527
589
|
for name, value in zip(node.output, outputs):
|
|
528
|
-
if isinstance(value, tuple):
|
|
529
|
-
raise TypeError(
|
|
530
|
-
f"Unexected type {type(value)} for output {name!r}."
|
|
531
|
-
)
|
|
532
590
|
self._log(2, " + %s: %s", name, value) # type: ignore[arg-type]
|
|
533
591
|
results[name] = value
|
|
534
592
|
|
|
535
593
|
# return the results
|
|
536
|
-
list_results: List[Any] = []
|
|
537
594
|
for name in output_names:
|
|
538
595
|
if name not in results:
|
|
539
596
|
raise RuntimeError(
|
|
540
597
|
f"Unable to find output name {name!r} in {sorted(results)}, proto is\n{self.proto_}"
|
|
541
598
|
)
|
|
542
|
-
|
|
543
|
-
return list_results
|
|
599
|
+
return [results[name] for name in output_names]
|