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/defs/traditionalml/old.cc
CHANGED
|
@@ -37,12 +37,14 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
37
37
|
.Attr("classes_strings", "A list of labels.", AttributeProto::STRINGS, OPTIONAL_VALUE)
|
|
38
38
|
.Attr(
|
|
39
39
|
"default_int64",
|
|
40
|
-
"An integer to use when an input string value is not found in the map.<br>One and only one of the
|
|
40
|
+
"An integer to use when an input string value is not found in the map.<br>One and only one of the "
|
|
41
|
+
"'default_*' attributes must be defined.",
|
|
41
42
|
AttributeProto::INT,
|
|
42
43
|
static_cast<int64_t>(-1))
|
|
43
44
|
.Attr(
|
|
44
45
|
"default_string",
|
|
45
|
-
"A string to use when an input integer value is not found in the map.<br>One and only one of the
|
|
46
|
+
"A string to use when an input integer value is not found in the map.<br>One and only one of the "
|
|
47
|
+
"'default_*' attributes must be defined.",
|
|
46
48
|
AttributeProto::STRING,
|
|
47
49
|
std::string("_Unused"))
|
|
48
50
|
.TypeAndShapeInferenceFunction([](InferenceContext& ctx) {
|
|
@@ -82,7 +84,8 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
82
84
|
.TypeConstraint(
|
|
83
85
|
"T2",
|
|
84
86
|
{"tensor(string)", "tensor(int64)"},
|
|
85
|
-
"The output type will be a tensor of strings or integers, depending on which of the classlabels_*
|
|
87
|
+
"The output type will be a tensor of strings or integers, depending on which of the classlabels_* "
|
|
88
|
+
"attributes is used.")
|
|
86
89
|
.Attr("nodes_treeids", "Tree id for each node.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
87
90
|
.Attr(
|
|
88
91
|
"nodes_nodeids",
|
|
@@ -102,14 +105,17 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
102
105
|
OPTIONAL_VALUE)
|
|
103
106
|
.Attr(
|
|
104
107
|
"nodes_modes",
|
|
105
|
-
"The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf
|
|
108
|
+
"The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf "
|
|
109
|
+
"node.<br>One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'",
|
|
106
110
|
AttributeProto::STRINGS,
|
|
107
111
|
OPTIONAL_VALUE)
|
|
108
112
|
.Attr("nodes_truenodeids", "Child node if expression is true.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
109
113
|
.Attr("nodes_falsenodeids", "Child node if expression is false.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
110
114
|
.Attr(
|
|
111
115
|
"nodes_missing_value_tracks_true",
|
|
112
|
-
"For each node, define what to do in the presence of a missing value: if a value is missing (NaN), use the
|
|
116
|
+
"For each node, define what to do in the presence of a missing value: if a value is missing (NaN), use the "
|
|
117
|
+
"'true' or 'false' branch based on the value in this array.<br>This attribute may be left undefined, and "
|
|
118
|
+
"the default value is false (0) for all nodes.",
|
|
113
119
|
AttributeProto::INTS,
|
|
114
120
|
OPTIONAL_VALUE)
|
|
115
121
|
.Attr("class_treeids", "The id of the tree that this node is in.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
@@ -118,22 +124,26 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
118
124
|
.Attr("class_weights", "The weight for the class in class_id.", AttributeProto::FLOATS, OPTIONAL_VALUE)
|
|
119
125
|
.Attr(
|
|
120
126
|
"classlabels_strings",
|
|
121
|
-
"Class labels if using string labels.<br>One and only one of the 'classlabels_*' attributes must be
|
|
127
|
+
"Class labels if using string labels.<br>One and only one of the 'classlabels_*' attributes must be "
|
|
128
|
+
"defined.",
|
|
122
129
|
AttributeProto::STRINGS,
|
|
123
130
|
OPTIONAL_VALUE)
|
|
124
131
|
.Attr(
|
|
125
132
|
"classlabels_int64s",
|
|
126
|
-
"Class labels if using integer labels.<br>One and only one of the 'classlabels_*' attributes must be
|
|
133
|
+
"Class labels if using integer labels.<br>One and only one of the 'classlabels_*' attributes must be "
|
|
134
|
+
"defined.",
|
|
127
135
|
AttributeProto::INTS,
|
|
128
136
|
OPTIONAL_VALUE)
|
|
129
137
|
.Attr(
|
|
130
138
|
"post_transform",
|
|
131
|
-
"Indicates the transform to apply to the score. <br> One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,'
|
|
139
|
+
"Indicates the transform to apply to the score. <br> One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' "
|
|
140
|
+
"or 'PROBIT.'",
|
|
132
141
|
AttributeProto::STRING,
|
|
133
142
|
std::string("NONE"))
|
|
134
143
|
.Attr(
|
|
135
144
|
"base_values",
|
|
136
|
-
"Base values for classification, added to final class score; the size must be the same as the classes or
|
|
145
|
+
"Base values for classification, added to final class score; the size must be the same as the classes or "
|
|
146
|
+
"can be left unassigned (assumed 0)",
|
|
137
147
|
AttributeProto::FLOATS,
|
|
138
148
|
OPTIONAL_VALUE)
|
|
139
149
|
.TypeAndShapeInferenceFunction([](InferenceContext& ctx) {
|
|
@@ -148,6 +158,173 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
148
158
|
}
|
|
149
159
|
}));
|
|
150
160
|
|
|
161
|
+
static const char* TreeEnsembleClassifier_ver3_doc = R"DOC(
|
|
162
|
+
Tree Ensemble classifier. Returns the top class for each of N inputs.<br>
|
|
163
|
+
The attributes named 'nodes_X' form a sequence of tuples, associated by
|
|
164
|
+
index into the sequences, which must all be of equal length. These tuples
|
|
165
|
+
define the nodes.<br>
|
|
166
|
+
Similarly, all fields prefixed with 'class_' are tuples of votes at the leaves.
|
|
167
|
+
A leaf may have multiple votes, where each vote is weighted by
|
|
168
|
+
the associated class_weights index.<br>
|
|
169
|
+
One and only one of classlabels_strings or classlabels_int64s
|
|
170
|
+
will be defined. The class_ids are indices into this list.
|
|
171
|
+
All fields ending with <i>_as_tensor</i> can be used instead of the
|
|
172
|
+
same parameter without the suffix if the element type is double and not float.
|
|
173
|
+
)DOC";
|
|
174
|
+
|
|
175
|
+
ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
176
|
+
TreeEnsembleClassifier,
|
|
177
|
+
3,
|
|
178
|
+
OpSchema()
|
|
179
|
+
.SetDoc(TreeEnsembleClassifier_ver3_doc)
|
|
180
|
+
.Input(0, "X", "Input of shape [N,F]", "T1")
|
|
181
|
+
.Output(0, "Y", "N, Top class for each point", "T2")
|
|
182
|
+
.Output(1, "Z", "The class score for each class, for each point, a tensor of shape [N,E].", "tensor(float)")
|
|
183
|
+
.TypeConstraint(
|
|
184
|
+
"T1",
|
|
185
|
+
{"tensor(float)", "tensor(double)", "tensor(int64)", "tensor(int32)"},
|
|
186
|
+
"The input type must be a tensor of a numeric type.")
|
|
187
|
+
.TypeConstraint(
|
|
188
|
+
"T2",
|
|
189
|
+
{"tensor(string)", "tensor(int64)"},
|
|
190
|
+
"The output type will be a tensor of strings or integers, depending on which of the classlabels_* "
|
|
191
|
+
"attributes is used.")
|
|
192
|
+
.Attr("nodes_treeids", "Tree id for each node.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
193
|
+
.Attr(
|
|
194
|
+
"nodes_nodeids",
|
|
195
|
+
"Node id for each node. Ids may restart at zero for each tree, but it not required to.",
|
|
196
|
+
AttributeProto::INTS,
|
|
197
|
+
OPTIONAL_VALUE)
|
|
198
|
+
.Attr("nodes_featureids", "Feature id for each node.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
199
|
+
.Attr(
|
|
200
|
+
"nodes_values",
|
|
201
|
+
"Thresholds to do the splitting on for each node.",
|
|
202
|
+
AttributeProto::FLOATS,
|
|
203
|
+
OPTIONAL_VALUE)
|
|
204
|
+
.Attr(
|
|
205
|
+
"nodes_values_as_tensor",
|
|
206
|
+
"Thresholds to do the splitting on for each node.",
|
|
207
|
+
AttributeProto::TENSOR,
|
|
208
|
+
OPTIONAL_VALUE)
|
|
209
|
+
.Attr(
|
|
210
|
+
"nodes_hitrates",
|
|
211
|
+
"Popularity of each node, used for performance and may be omitted.",
|
|
212
|
+
AttributeProto::FLOATS,
|
|
213
|
+
OPTIONAL_VALUE)
|
|
214
|
+
.Attr(
|
|
215
|
+
"nodes_hitrates_as_tensor",
|
|
216
|
+
"Popularity of each node, used for performance and may be omitted.",
|
|
217
|
+
AttributeProto::TENSOR,
|
|
218
|
+
OPTIONAL_VALUE)
|
|
219
|
+
.Attr(
|
|
220
|
+
"nodes_modes",
|
|
221
|
+
"The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf "
|
|
222
|
+
"node.<br>One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'",
|
|
223
|
+
AttributeProto::STRINGS,
|
|
224
|
+
OPTIONAL_VALUE)
|
|
225
|
+
.Attr("nodes_truenodeids", "Child node if expression is true.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
226
|
+
.Attr("nodes_falsenodeids", "Child node if expression is false.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
227
|
+
.Attr(
|
|
228
|
+
"nodes_missing_value_tracks_true",
|
|
229
|
+
"For each node, define what to do in the presence of a missing value: if a value is missing (NaN), use the "
|
|
230
|
+
"'true' or 'false' branch based on the value in this array.<br>This attribute may be left undefined, and "
|
|
231
|
+
"the default value is false (0) for all nodes.",
|
|
232
|
+
AttributeProto::INTS,
|
|
233
|
+
OPTIONAL_VALUE)
|
|
234
|
+
.Attr("class_treeids", "The id of the tree that this node is in.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
235
|
+
.Attr("class_nodeids", "node id that this weight is for.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
236
|
+
.Attr("class_ids", "The index of the class list that each weight is for.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
237
|
+
.Attr("class_weights", "The weight for the class in class_id.", AttributeProto::FLOATS, OPTIONAL_VALUE)
|
|
238
|
+
.Attr(
|
|
239
|
+
"class_weights_as_tensor",
|
|
240
|
+
"The weight for the class in class_id.",
|
|
241
|
+
AttributeProto::TENSOR,
|
|
242
|
+
OPTIONAL_VALUE)
|
|
243
|
+
.Attr(
|
|
244
|
+
"classlabels_strings",
|
|
245
|
+
"Class labels if using string labels.<br>One and only one of the 'classlabels_*' attributes must be "
|
|
246
|
+
"defined.",
|
|
247
|
+
AttributeProto::STRINGS,
|
|
248
|
+
OPTIONAL_VALUE)
|
|
249
|
+
.Attr(
|
|
250
|
+
"classlabels_int64s",
|
|
251
|
+
"Class labels if using integer labels.<br>One and only one of the 'classlabels_*' attributes must be "
|
|
252
|
+
"defined.",
|
|
253
|
+
AttributeProto::INTS,
|
|
254
|
+
OPTIONAL_VALUE)
|
|
255
|
+
.Attr(
|
|
256
|
+
"post_transform",
|
|
257
|
+
"Indicates the transform to apply to the score. <br> One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' "
|
|
258
|
+
"or 'PROBIT.'",
|
|
259
|
+
AttributeProto::STRING,
|
|
260
|
+
std::string("NONE"))
|
|
261
|
+
.Attr(
|
|
262
|
+
"base_values",
|
|
263
|
+
"Base values for classification, added to final class score; the size must be the same as the classes or "
|
|
264
|
+
"can be left unassigned (assumed 0)",
|
|
265
|
+
AttributeProto::FLOATS,
|
|
266
|
+
OPTIONAL_VALUE)
|
|
267
|
+
.Attr(
|
|
268
|
+
"base_values_as_tensor",
|
|
269
|
+
"Base values for classification, added to final class score; the size must be the same as the classes or "
|
|
270
|
+
"can be left unassigned (assumed 0)",
|
|
271
|
+
AttributeProto::TENSOR,
|
|
272
|
+
OPTIONAL_VALUE)
|
|
273
|
+
.TypeAndShapeInferenceFunction([](InferenceContext& ctx) {
|
|
274
|
+
auto* nodes_values = ctx.getAttribute("nodes_values");
|
|
275
|
+
auto* nodes_values_as_tensor = ctx.getAttribute("nodes_values_as_tensor");
|
|
276
|
+
auto* nodes_hitrates = ctx.getAttribute("nodes_hitrates");
|
|
277
|
+
auto* nodes_hitrates_as_tensor = ctx.getAttribute("nodes_hitrates_as_tensor");
|
|
278
|
+
auto* class_weights = ctx.getAttribute("class_weights");
|
|
279
|
+
auto* class_weights_as_tensor = ctx.getAttribute("class_weights_as_tensor");
|
|
280
|
+
auto* base_values = ctx.getAttribute("base_values");
|
|
281
|
+
auto* base_values_as_tensor = ctx.getAttribute("base_values_as_tensor");
|
|
282
|
+
|
|
283
|
+
if (nullptr != nodes_values && nullptr != nodes_values_as_tensor) {
|
|
284
|
+
fail_shape_inference(
|
|
285
|
+
"Only one of the attributes 'nodes_values', 'nodes_values_as_tensor' should be specified.");
|
|
286
|
+
}
|
|
287
|
+
if (nullptr != nodes_hitrates && nullptr != nodes_hitrates_as_tensor) {
|
|
288
|
+
fail_shape_inference(
|
|
289
|
+
"Only one of the attributes 'nodes_hitrates', 'nodes_hitrates_as_tensor' should be specified.");
|
|
290
|
+
}
|
|
291
|
+
if (nullptr != class_weights && nullptr != class_weights_as_tensor) {
|
|
292
|
+
fail_shape_inference(
|
|
293
|
+
"Only one of the attributes 'class_weights', 'class_weights_as_tensor' should be specified.");
|
|
294
|
+
}
|
|
295
|
+
if (nullptr != base_values && nullptr != base_values_as_tensor) {
|
|
296
|
+
fail_shape_inference(
|
|
297
|
+
"Only one of the attributes 'base_values', 'base_values_as_tensor' should be specified.");
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
std::vector<std::string> classlabels_strings;
|
|
301
|
+
auto result = getRepeatedAttribute(ctx, "classlabels_strings", classlabels_strings);
|
|
302
|
+
bool using_strings = (result && !classlabels_strings.empty());
|
|
303
|
+
if (using_strings) {
|
|
304
|
+
updateOutputElemType(ctx, 0, TensorProto::STRING);
|
|
305
|
+
} else {
|
|
306
|
+
updateOutputElemType(ctx, 0, TensorProto::INT64);
|
|
307
|
+
}
|
|
308
|
+
updateOutputElemType(ctx, 1, TensorProto::FLOAT);
|
|
309
|
+
|
|
310
|
+
checkInputRank(ctx, 0, 2);
|
|
311
|
+
Dim N, E;
|
|
312
|
+
unifyInputDim(ctx, 0, 0, N);
|
|
313
|
+
|
|
314
|
+
if (using_strings) {
|
|
315
|
+
unifyDim(E, classlabels_strings.size());
|
|
316
|
+
} else {
|
|
317
|
+
std::vector<int64_t> classlabels_int64s;
|
|
318
|
+
result = getRepeatedAttribute(ctx, "classlabels_int64s", classlabels_int64s);
|
|
319
|
+
if (!result || classlabels_int64s.empty()) {
|
|
320
|
+
fail_shape_inference("Non of classlabels_int64s or classlabels_strings is set.");
|
|
321
|
+
}
|
|
322
|
+
unifyDim(E, classlabels_int64s.size());
|
|
323
|
+
}
|
|
324
|
+
updateOutputShape(ctx, 0, {N});
|
|
325
|
+
updateOutputShape(ctx, 1, {N, E});
|
|
326
|
+
}));
|
|
327
|
+
|
|
151
328
|
static const char* TreeEnsembleRegressor_ver1_doc = R"DOC(
|
|
152
329
|
Tree Ensemble regressor. Returns the regressed values for each input in N.<br>
|
|
153
330
|
All args with nodes_ are fields of a tuple of tree nodes, and
|
|
@@ -191,14 +368,17 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
191
368
|
OPTIONAL_VALUE)
|
|
192
369
|
.Attr(
|
|
193
370
|
"nodes_modes",
|
|
194
|
-
"The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf
|
|
371
|
+
"The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf "
|
|
372
|
+
"node.<br>One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'",
|
|
195
373
|
AttributeProto::STRINGS,
|
|
196
374
|
OPTIONAL_VALUE)
|
|
197
375
|
.Attr("nodes_truenodeids", "Child node if expression is true", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
198
376
|
.Attr("nodes_falsenodeids", "Child node if expression is false", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
199
377
|
.Attr(
|
|
200
378
|
"nodes_missing_value_tracks_true",
|
|
201
|
-
"For each node, define what to do in the presence of a NaN: use the 'true' (if the attribute value is 1)
|
|
379
|
+
"For each node, define what to do in the presence of a NaN: use the 'true' (if the attribute value is 1) "
|
|
380
|
+
"or 'false' (if the attribute value is 0) branch based on the value in this array.<br>This attribute may "
|
|
381
|
+
"be left undefined and the default value is false (0) for all nodes.",
|
|
202
382
|
AttributeProto::INTS,
|
|
203
383
|
OPTIONAL_VALUE)
|
|
204
384
|
.Attr("target_treeids", "The id of the tree that each node is in.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
@@ -208,7 +388,8 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
208
388
|
.Attr("n_targets", "The total number of targets.", AttributeProto::INT, OPTIONAL_VALUE)
|
|
209
389
|
.Attr(
|
|
210
390
|
"post_transform",
|
|
211
|
-
"Indicates the transform to apply to the score. <br>One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,'
|
|
391
|
+
"Indicates the transform to apply to the score. <br>One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' "
|
|
392
|
+
"or 'PROBIT'",
|
|
212
393
|
AttributeProto::STRING,
|
|
213
394
|
std::string("NONE"))
|
|
214
395
|
.Attr(
|
|
@@ -218,10 +399,145 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
218
399
|
std::string("SUM"))
|
|
219
400
|
.Attr(
|
|
220
401
|
"base_values",
|
|
221
|
-
"Base values for classification, added to final class score; the size must be the same as the classes or
|
|
402
|
+
"Base values for classification, added to final class score; the size must be the same as the classes or "
|
|
403
|
+
"can be left unassigned (assumed 0)",
|
|
222
404
|
AttributeProto::FLOATS,
|
|
223
405
|
OPTIONAL_VALUE));
|
|
224
406
|
|
|
407
|
+
static const char* TreeEnsembleRegressor_ver3_doc = R"DOC(
|
|
408
|
+
Tree Ensemble regressor. Returns the regressed values for each input in N.<br>
|
|
409
|
+
All args with nodes_ are fields of a tuple of tree nodes, and
|
|
410
|
+
it is assumed they are the same length, and an index i will decode the
|
|
411
|
+
tuple across these inputs. Each node id can appear only once
|
|
412
|
+
for each tree id.<br>
|
|
413
|
+
All fields prefixed with target_ are tuples of votes at the leaves.<br>
|
|
414
|
+
A leaf may have multiple votes, where each vote is weighted by
|
|
415
|
+
the associated target_weights index.<br>
|
|
416
|
+
All fields ending with <i>_as_tensor</i> can be used instead of the
|
|
417
|
+
same parameter without the suffix if the element type is double and not float.
|
|
418
|
+
All trees must have their node ids start at 0 and increment by 1.<br>
|
|
419
|
+
Mode enum is BRANCH_LEQ, BRANCH_LT, BRANCH_GTE, BRANCH_GT, BRANCH_EQ, BRANCH_NEQ, LEAF
|
|
420
|
+
)DOC";
|
|
421
|
+
|
|
422
|
+
ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
423
|
+
TreeEnsembleRegressor,
|
|
424
|
+
3,
|
|
425
|
+
OpSchema()
|
|
426
|
+
.SetDoc(TreeEnsembleRegressor_ver3_doc)
|
|
427
|
+
.Input(0, "X", "Input of shape [N,F]", "T")
|
|
428
|
+
.Output(0, "Y", "N classes", "tensor(float)")
|
|
429
|
+
.TypeConstraint(
|
|
430
|
+
"T",
|
|
431
|
+
{"tensor(float)", "tensor(double)", "tensor(int64)", "tensor(int32)"},
|
|
432
|
+
"The input type must be a tensor of a numeric type.")
|
|
433
|
+
.Attr("nodes_treeids", "Tree id for each node.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
434
|
+
.Attr(
|
|
435
|
+
"nodes_nodeids",
|
|
436
|
+
"Node id for each node. Node ids must restart at zero for each tree and increase sequentially.",
|
|
437
|
+
AttributeProto::INTS,
|
|
438
|
+
OPTIONAL_VALUE)
|
|
439
|
+
.Attr("nodes_featureids", "Feature id for each node.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
440
|
+
.Attr(
|
|
441
|
+
"nodes_values",
|
|
442
|
+
"Thresholds to do the splitting on for each node.",
|
|
443
|
+
AttributeProto::FLOATS,
|
|
444
|
+
OPTIONAL_VALUE)
|
|
445
|
+
.Attr(
|
|
446
|
+
"nodes_values_as_tensor",
|
|
447
|
+
"Thresholds to do the splitting on for each node.",
|
|
448
|
+
AttributeProto::TENSOR,
|
|
449
|
+
OPTIONAL_VALUE)
|
|
450
|
+
.Attr(
|
|
451
|
+
"nodes_hitrates",
|
|
452
|
+
"Popularity of each node, used for performance and may be omitted.",
|
|
453
|
+
AttributeProto::FLOATS,
|
|
454
|
+
OPTIONAL_VALUE)
|
|
455
|
+
.Attr(
|
|
456
|
+
"nodes_hitrates_as_tensor",
|
|
457
|
+
"Popularity of each node, used for performance and may be omitted.",
|
|
458
|
+
AttributeProto::TENSOR,
|
|
459
|
+
OPTIONAL_VALUE)
|
|
460
|
+
.Attr(
|
|
461
|
+
"nodes_modes",
|
|
462
|
+
"The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf "
|
|
463
|
+
"node.<br>One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'",
|
|
464
|
+
AttributeProto::STRINGS,
|
|
465
|
+
OPTIONAL_VALUE)
|
|
466
|
+
.Attr("nodes_truenodeids", "Child node if expression is true", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
467
|
+
.Attr("nodes_falsenodeids", "Child node if expression is false", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
468
|
+
.Attr(
|
|
469
|
+
"nodes_missing_value_tracks_true",
|
|
470
|
+
"For each node, define what to do in the presence of a NaN: use the 'true' (if the attribute value is 1) "
|
|
471
|
+
"or 'false' (if the attribute value is 0) branch based on the value in this array.<br>This attribute may "
|
|
472
|
+
"be left undefined and the default value is false (0) for all nodes.",
|
|
473
|
+
AttributeProto::INTS,
|
|
474
|
+
OPTIONAL_VALUE)
|
|
475
|
+
.Attr("target_treeids", "The id of the tree that each node is in.", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
476
|
+
.Attr("target_nodeids", "The node id of each weight", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
477
|
+
.Attr("target_ids", "The index of the target that each weight is for", AttributeProto::INTS, OPTIONAL_VALUE)
|
|
478
|
+
.Attr("target_weights", "The weight for each target", AttributeProto::FLOATS, OPTIONAL_VALUE)
|
|
479
|
+
.Attr("target_weights_as_tensor", "The weight for each target", AttributeProto::TENSOR, OPTIONAL_VALUE)
|
|
480
|
+
.Attr("n_targets", "The total number of targets.", AttributeProto::INT, OPTIONAL_VALUE)
|
|
481
|
+
.Attr(
|
|
482
|
+
"post_transform",
|
|
483
|
+
"Indicates the transform to apply to the score. <br>One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' "
|
|
484
|
+
"or 'PROBIT'",
|
|
485
|
+
AttributeProto::STRING,
|
|
486
|
+
std::string("NONE"))
|
|
487
|
+
.Attr(
|
|
488
|
+
"aggregate_function",
|
|
489
|
+
"Defines how to aggregate leaf values within a target. <br>One of 'AVERAGE,' 'SUM,' 'MIN,' 'MAX.'",
|
|
490
|
+
AttributeProto::STRING,
|
|
491
|
+
std::string("SUM"))
|
|
492
|
+
.Attr(
|
|
493
|
+
"base_values",
|
|
494
|
+
"Base values for regression, added to final prediction after applying aggregate_function; the size must be "
|
|
495
|
+
"the same as the classes or can be left unassigned (assumed 0)",
|
|
496
|
+
AttributeProto::FLOATS,
|
|
497
|
+
OPTIONAL_VALUE)
|
|
498
|
+
.Attr(
|
|
499
|
+
"base_values_as_tensor",
|
|
500
|
+
"Base values for regression, added to final prediction after applying aggregate_function; the size must be "
|
|
501
|
+
"the same as the classes or can be left unassigned (assumed 0)",
|
|
502
|
+
AttributeProto::TENSOR,
|
|
503
|
+
OPTIONAL_VALUE)
|
|
504
|
+
.TypeAndShapeInferenceFunction([](InferenceContext& ctx) {
|
|
505
|
+
auto* nodes_values = ctx.getAttribute("nodes_values");
|
|
506
|
+
auto* nodes_values_as_tensor = ctx.getAttribute("nodes_values_as_tensor");
|
|
507
|
+
auto* nodes_hitrates = ctx.getAttribute("nodes_hitrates");
|
|
508
|
+
auto* nodes_hitrates_as_tensor = ctx.getAttribute("nodes_hitrates_as_tensor");
|
|
509
|
+
auto* target_weights = ctx.getAttribute("target_weights");
|
|
510
|
+
auto* target_weights_as_tensor = ctx.getAttribute("target_weights_as_tensor");
|
|
511
|
+
auto* base_values = ctx.getAttribute("base_values");
|
|
512
|
+
auto* base_values_as_tensor = ctx.getAttribute("base_values_as_tensor");
|
|
513
|
+
|
|
514
|
+
if (nullptr != nodes_values && nullptr != nodes_values_as_tensor) {
|
|
515
|
+
fail_shape_inference(
|
|
516
|
+
"Only one of the attributes 'nodes_values', 'nodes_values_as_tensor' should be specified.");
|
|
517
|
+
}
|
|
518
|
+
if (nullptr != nodes_hitrates && nullptr != nodes_hitrates_as_tensor) {
|
|
519
|
+
fail_shape_inference(
|
|
520
|
+
"Only one of the attributes 'nodes_hitrates', 'nodes_hitrates_as_tensor' should be specified.");
|
|
521
|
+
}
|
|
522
|
+
if (nullptr != target_weights && nullptr != target_weights_as_tensor) {
|
|
523
|
+
fail_shape_inference(
|
|
524
|
+
"Only one of the attributes 'target_weights', 'target_weights_as_tensor' should be specified.");
|
|
525
|
+
}
|
|
526
|
+
if (nullptr != base_values && nullptr != base_values_as_tensor) {
|
|
527
|
+
fail_shape_inference(
|
|
528
|
+
"Only one of the attributes 'base_values', 'base_values_as_tensor' should be specified.");
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
checkInputRank(ctx, 0, 2);
|
|
532
|
+
Dim N, E;
|
|
533
|
+
unifyInputDim(ctx, 0, 0, N);
|
|
534
|
+
if (nullptr != ctx.getAttribute("n_targets")) {
|
|
535
|
+
unifyDim(E, ctx.getAttribute("n_targets")->i());
|
|
536
|
+
}
|
|
537
|
+
updateOutputElemType(ctx, 0, TensorProto::FLOAT);
|
|
538
|
+
updateOutputShape(ctx, 0, {N, E});
|
|
539
|
+
}));
|
|
540
|
+
|
|
225
541
|
static const char* LabelEncoder_ver2_doc = R"DOC(
|
|
226
542
|
Maps each element in the input tensor to another value.<br>
|
|
227
543
|
The mapping is determined by the two parallel attributes, 'keys_*' and
|
|
@@ -337,6 +653,5 @@ ONNX_ML_OPERATOR_SET_SCHEMA(
|
|
|
337
653
|
// Input and output shapes are the same.
|
|
338
654
|
propagateShapeFromInputToOutput(ctx, 0, 0);
|
|
339
655
|
}));
|
|
340
|
-
|
|
341
656
|
} // namespace ONNX_NAMESPACE
|
|
342
657
|
#endif
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#include "onnx/defs/schema.h"
|
|
2
|
+
#include "onnx/defs/shape_inference.h"
|
|
3
|
+
|
|
4
|
+
namespace ONNX_NAMESPACE {
|
|
5
|
+
|
|
6
|
+
void AssertAttributeProtoTypeAndLength(
|
|
7
|
+
const AttributeProto* attr_proto,
|
|
8
|
+
int expected_length,
|
|
9
|
+
TensorProto_DataType expected_type,
|
|
10
|
+
bool required) {
|
|
11
|
+
if (nullptr == attr_proto) {
|
|
12
|
+
if (required) {
|
|
13
|
+
fail_shape_inference("Unspecified required attribute.");
|
|
14
|
+
}
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const auto& [type, length] = getAttributeProtoElemTypeAndLength(attr_proto);
|
|
18
|
+
if (type != expected_type) {
|
|
19
|
+
fail_shape_inference(
|
|
20
|
+
"Attribute '", attr_proto->name(), "' must have type ", TensorProto_DataType_Name(expected_type), ".");
|
|
21
|
+
}
|
|
22
|
+
if (length != expected_length) {
|
|
23
|
+
fail_shape_inference("Attribute '", attr_proto->name(), "' must have ", expected_length, " elements.");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
} // namespace ONNX_NAMESPACE
|
onnx/external_data_helper.py
CHANGED
|
@@ -8,6 +8,7 @@ import uuid
|
|
|
8
8
|
from itertools import chain
|
|
9
9
|
from typing import Callable, Iterable, Optional
|
|
10
10
|
|
|
11
|
+
import onnx.onnx_cpp2py_export.checker as c_checker
|
|
11
12
|
from onnx.onnx_pb import AttributeProto, GraphProto, ModelProto, TensorProto
|
|
12
13
|
|
|
13
14
|
|
|
@@ -30,8 +31,7 @@ class ExternalDataInfo:
|
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
def load_external_data_for_tensor(tensor: TensorProto, base_dir: str) -> None:
|
|
33
|
-
"""
|
|
34
|
-
Loads data from an external file for tensor.
|
|
34
|
+
"""Loads data from an external file for tensor.
|
|
35
35
|
Ideally TensorProto should not hold any raw data but if it does it will be ignored.
|
|
36
36
|
|
|
37
37
|
Arguments:
|
|
@@ -39,9 +39,9 @@ def load_external_data_for_tensor(tensor: TensorProto, base_dir: str) -> None:
|
|
|
39
39
|
base_dir: directory that contains the external data.
|
|
40
40
|
"""
|
|
41
41
|
info = ExternalDataInfo(tensor)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
external_data_file_path = c_checker._resolve_external_data_location( # type: ignore[attr-defined]
|
|
43
|
+
base_dir, info.location, tensor.name
|
|
44
|
+
)
|
|
45
45
|
with open(external_data_file_path, "rb") as data_file:
|
|
46
46
|
if info.offset:
|
|
47
47
|
data_file.seek(info.offset)
|
|
@@ -53,8 +53,7 @@ def load_external_data_for_tensor(tensor: TensorProto, base_dir: str) -> None:
|
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
def load_external_data_for_model(model: ModelProto, base_dir: str) -> None:
|
|
56
|
-
"""
|
|
57
|
-
Loads external tensors into model
|
|
56
|
+
"""Loads external tensors into model
|
|
58
57
|
|
|
59
58
|
Arguments:
|
|
60
59
|
model: ModelProto to load external data to
|
|
@@ -106,8 +105,7 @@ def convert_model_to_external_data(
|
|
|
106
105
|
size_threshold: int = 1024,
|
|
107
106
|
convert_attribute: bool = False,
|
|
108
107
|
) -> None:
|
|
109
|
-
"""
|
|
110
|
-
Call to set all tensors with raw data as external data. This call should preceed 'save_model'.
|
|
108
|
+
"""Call to set all tensors with raw data as external data. This call should precede 'save_model'.
|
|
111
109
|
'save_model' saves all the tensors data as external data after calling this function.
|
|
112
110
|
|
|
113
111
|
Arguments:
|
|
@@ -153,8 +151,7 @@ def convert_model_to_external_data(
|
|
|
153
151
|
|
|
154
152
|
|
|
155
153
|
def convert_model_from_external_data(model: ModelProto) -> None:
|
|
156
|
-
"""
|
|
157
|
-
Call to set all tensors which use external data as embedded data.
|
|
154
|
+
"""Call to set all tensors which use external data as embedded data.
|
|
158
155
|
save_model saves all the tensors data as embedded data after
|
|
159
156
|
calling this function.
|
|
160
157
|
|
|
@@ -170,8 +167,7 @@ def convert_model_from_external_data(model: ModelProto) -> None:
|
|
|
170
167
|
|
|
171
168
|
|
|
172
169
|
def save_external_data(tensor: TensorProto, base_path: str) -> None:
|
|
173
|
-
"""
|
|
174
|
-
Writes tensor data to an external file according to information in the `external_data` field.
|
|
170
|
+
"""Writes tensor data to an external file according to information in the `external_data` field.
|
|
175
171
|
|
|
176
172
|
Arguments:
|
|
177
173
|
tensor (TensorProto): Tensor object to be serialized
|
|
@@ -259,14 +255,6 @@ def _get_attribute_tensors(onnx_model_proto: ModelProto) -> Iterable[TensorProto
|
|
|
259
255
|
yield from _get_attribute_tensors_from_graph(onnx_model_proto.graph)
|
|
260
256
|
|
|
261
257
|
|
|
262
|
-
def _sanitize_path(path: str) -> str:
|
|
263
|
-
"""Remove path components which would allow traversing up a directory tree from a base path.
|
|
264
|
-
|
|
265
|
-
Note: This method is currently very basic and should be expanded.
|
|
266
|
-
"""
|
|
267
|
-
return path.lstrip("/.")
|
|
268
|
-
|
|
269
|
-
|
|
270
258
|
def _is_valid_filename(filename: str) -> bool:
|
|
271
259
|
"""Utility to check whether the provided filename is valid."""
|
|
272
260
|
exp = re.compile('^[^<>:;,?"*|/]+$')
|
|
@@ -276,15 +264,14 @@ def _is_valid_filename(filename: str) -> bool:
|
|
|
276
264
|
|
|
277
265
|
def uses_external_data(tensor: TensorProto) -> bool:
|
|
278
266
|
"""Returns true if the tensor stores data in an external location."""
|
|
279
|
-
return (
|
|
267
|
+
return ( # type: ignore[no-any-return]
|
|
280
268
|
tensor.HasField("data_location")
|
|
281
269
|
and tensor.data_location == TensorProto.EXTERNAL
|
|
282
270
|
)
|
|
283
271
|
|
|
284
272
|
|
|
285
273
|
def remove_external_data_field(tensor: TensorProto, field_key: str) -> None:
|
|
286
|
-
"""
|
|
287
|
-
Removes a field from a Tensor's external_data key-value store.
|
|
274
|
+
"""Removes a field from a Tensor's external_data key-value store.
|
|
288
275
|
|
|
289
276
|
Modifies tensor object in place.
|
|
290
277
|
|
|
@@ -298,8 +285,7 @@ def remove_external_data_field(tensor: TensorProto, field_key: str) -> None:
|
|
|
298
285
|
|
|
299
286
|
|
|
300
287
|
def write_external_data_tensors(model: ModelProto, filepath: str) -> ModelProto:
|
|
301
|
-
"""
|
|
302
|
-
Serializes data for all the tensors which have data location set to TensorProto.External.
|
|
288
|
+
"""Serializes data for all the tensors which have data location set to TensorProto.External.
|
|
303
289
|
|
|
304
290
|
Note: This function also strips basepath information from all tensors' external_data fields.
|
|
305
291
|
|