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/helper.py
CHANGED
|
@@ -42,6 +42,7 @@ from onnx import (
|
|
|
42
42
|
ValueInfoProto,
|
|
43
43
|
defs,
|
|
44
44
|
mapping,
|
|
45
|
+
subbyte,
|
|
45
46
|
)
|
|
46
47
|
|
|
47
48
|
VersionRowType = Union[Tuple[str, int, int, int], Tuple[str, int, int, int, int]]
|
|
@@ -74,13 +75,14 @@ VERSION_TABLE: VersionTableType = [
|
|
|
74
75
|
("1.14.0", 9, 19, 3, 1),
|
|
75
76
|
("1.14.1", 9, 19, 3, 1),
|
|
76
77
|
("1.15.0", 9, 20, 4, 1),
|
|
78
|
+
("1.16.0", 10, 21, 5, 1),
|
|
77
79
|
]
|
|
78
80
|
|
|
79
81
|
VersionMapType = Dict[Tuple[str, int], int]
|
|
80
82
|
|
|
81
83
|
|
|
82
84
|
def create_op_set_id_version_map(table: VersionTableType) -> VersionMapType:
|
|
83
|
-
"""
|
|
85
|
+
"""Create a map from (opset-domain, opset-version) to ir-version from above table."""
|
|
84
86
|
result: VersionMapType = {}
|
|
85
87
|
|
|
86
88
|
def process(release_version: str, ir_version: int, *args: Any) -> None:
|
|
@@ -100,13 +102,15 @@ OP_SET_ID_VERSION_MAP = create_op_set_id_version_map(VERSION_TABLE)
|
|
|
100
102
|
|
|
101
103
|
|
|
102
104
|
def find_min_ir_version_for(
|
|
103
|
-
opsetidlist:
|
|
105
|
+
opsetidlist: Sequence[OperatorSetIdProto], ignore_unknown: bool = False
|
|
104
106
|
) -> int:
|
|
105
107
|
"""Given list of opset ids, determine minimum IR version required.
|
|
106
108
|
|
|
107
|
-
|
|
108
|
-
opsetidlist
|
|
109
|
-
ignore_unknown
|
|
109
|
+
Args:
|
|
110
|
+
opsetidlist: A sequence of OperatorSetIdProto.
|
|
111
|
+
ignore_unknown: If True, ignore unknown domain and return default minimum
|
|
112
|
+
version for that domain.
|
|
113
|
+
|
|
110
114
|
Returns:
|
|
111
115
|
The minimum IR version required (integer)
|
|
112
116
|
"""
|
|
@@ -132,11 +136,12 @@ def make_node(
|
|
|
132
136
|
name: Optional[str] = None,
|
|
133
137
|
doc_string: Optional[str] = None,
|
|
134
138
|
domain: Optional[str] = None,
|
|
139
|
+
overload: Optional[str] = None,
|
|
135
140
|
**kwargs: Any,
|
|
136
141
|
) -> NodeProto:
|
|
137
142
|
"""Construct a NodeProto.
|
|
138
143
|
|
|
139
|
-
|
|
144
|
+
Args:
|
|
140
145
|
op_type (string): The name of the operator to construct
|
|
141
146
|
inputs (list of string): list of input names
|
|
142
147
|
outputs (list of string): list of output names
|
|
@@ -144,12 +149,14 @@ def make_node(
|
|
|
144
149
|
doc_string (string, default None): optional documentation string for NodeProto
|
|
145
150
|
domain (string, default None): optional domain for NodeProto.
|
|
146
151
|
If it's None, we will just use default domain (which is empty)
|
|
152
|
+
overload (string, default None): optional field, used to
|
|
153
|
+
resolve calls to model-local functions
|
|
147
154
|
**kwargs (dict): the attributes of the node. The acceptable values
|
|
148
155
|
are documented in :func:`make_attribute`.
|
|
156
|
+
|
|
149
157
|
Returns:
|
|
150
158
|
NodeProto
|
|
151
159
|
"""
|
|
152
|
-
|
|
153
160
|
node = NodeProto()
|
|
154
161
|
node.op_type = op_type
|
|
155
162
|
node.input.extend(inputs)
|
|
@@ -160,6 +167,8 @@ def make_node(
|
|
|
160
167
|
node.doc_string = doc_string
|
|
161
168
|
if domain is not None:
|
|
162
169
|
node.domain = domain
|
|
170
|
+
if overload is not None:
|
|
171
|
+
node.overload = overload
|
|
163
172
|
if kwargs:
|
|
164
173
|
node.attribute.extend(
|
|
165
174
|
make_attribute(key, value)
|
|
@@ -175,7 +184,7 @@ def make_operatorsetid(
|
|
|
175
184
|
) -> OperatorSetIdProto:
|
|
176
185
|
"""Construct an OperatorSetIdProto.
|
|
177
186
|
|
|
178
|
-
|
|
187
|
+
Args:
|
|
179
188
|
domain (string): The domain of the operator set id
|
|
180
189
|
version (integer): Version of operator set id
|
|
181
190
|
Returns:
|
|
@@ -199,7 +208,7 @@ def make_graph(
|
|
|
199
208
|
) -> GraphProto:
|
|
200
209
|
"""Construct a GraphProto
|
|
201
210
|
|
|
202
|
-
|
|
211
|
+
Args:
|
|
203
212
|
nodes: list of NodeProto
|
|
204
213
|
name (string): graph name
|
|
205
214
|
inputs: list of ValueInfoProto
|
|
@@ -233,7 +242,7 @@ def make_graph(
|
|
|
233
242
|
def make_opsetid(domain: str, version: int) -> OperatorSetIdProto:
|
|
234
243
|
"""Construct an OperatorSetIdProto.
|
|
235
244
|
|
|
236
|
-
|
|
245
|
+
Args:
|
|
237
246
|
domain (string): The domain of the operator set id
|
|
238
247
|
version (integer): Version of operator set id
|
|
239
248
|
Returns:
|
|
@@ -255,11 +264,15 @@ def make_function(
|
|
|
255
264
|
attributes: Optional[Sequence[str]] = None,
|
|
256
265
|
attribute_protos: Optional[Sequence[AttributeProto]] = None,
|
|
257
266
|
doc_string: Optional[str] = None,
|
|
267
|
+
overload: Optional[str] = None,
|
|
268
|
+
value_info: Optional[Sequence[ValueInfoProto]] = None,
|
|
258
269
|
) -> FunctionProto:
|
|
259
270
|
if attributes is None:
|
|
260
271
|
attributes = []
|
|
261
272
|
if attribute_protos is None:
|
|
262
273
|
attribute_protos = []
|
|
274
|
+
if value_info is None:
|
|
275
|
+
value_info = []
|
|
263
276
|
f = FunctionProto()
|
|
264
277
|
f.domain = domain
|
|
265
278
|
f.name = fname
|
|
@@ -271,13 +284,16 @@ def make_function(
|
|
|
271
284
|
f.attribute_proto.extend(attribute_protos)
|
|
272
285
|
if doc_string:
|
|
273
286
|
f.doc_string = doc_string
|
|
287
|
+
if overload is not None:
|
|
288
|
+
f.overload = overload
|
|
289
|
+
f.value_info.extend(value_info)
|
|
274
290
|
return f
|
|
275
291
|
|
|
276
292
|
|
|
277
293
|
def make_model(graph: GraphProto, **kwargs: Any) -> ModelProto:
|
|
278
294
|
"""Construct a ModelProto
|
|
279
295
|
|
|
280
|
-
|
|
296
|
+
Args:
|
|
281
297
|
graph (GraphProto): *make_graph* returns
|
|
282
298
|
**kwargs: any attribute to add to the returned instance
|
|
283
299
|
Returns:
|
|
@@ -315,18 +331,26 @@ def make_model_gen_version(graph: GraphProto, **kwargs: Any) -> ModelProto:
|
|
|
315
331
|
ir_version_field = "ir_version"
|
|
316
332
|
if ir_version_field not in kwargs:
|
|
317
333
|
opset_imports_field = "opset_imports"
|
|
318
|
-
imports = kwargs
|
|
334
|
+
imports = kwargs.get(opset_imports_field, [])
|
|
319
335
|
kwargs[ir_version_field] = find_min_ir_version_for(imports)
|
|
320
336
|
return make_model(graph, **kwargs)
|
|
321
337
|
|
|
322
338
|
|
|
323
|
-
def
|
|
324
|
-
|
|
339
|
+
def set_metadata_props(
|
|
340
|
+
proto: Union[
|
|
341
|
+
ModelProto, GraphProto, FunctionProto, NodeProto, TensorProto, ValueInfoProto
|
|
342
|
+
],
|
|
343
|
+
dict_value: Dict[str, str],
|
|
344
|
+
) -> None:
|
|
345
|
+
del proto.metadata_props[:]
|
|
325
346
|
for k, v in dict_value.items():
|
|
326
|
-
entry =
|
|
347
|
+
entry = proto.metadata_props.add()
|
|
327
348
|
entry.key = k
|
|
328
349
|
entry.value = v
|
|
329
|
-
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
def set_model_props(model: ModelProto, dict_value: Dict[str, str]) -> None:
|
|
353
|
+
set_metadata_props(model, dict_value)
|
|
330
354
|
|
|
331
355
|
|
|
332
356
|
def split_complex_to_pairs(ca: Sequence[np.complex64]) -> Sequence[int]:
|
|
@@ -362,19 +386,22 @@ def float32_to_float8e4m3( # noqa: PLR0911
|
|
|
362
386
|
uz: bool = False,
|
|
363
387
|
saturate: bool = True,
|
|
364
388
|
) -> int:
|
|
365
|
-
"""
|
|
366
|
-
Convert a float32 value to a float8, e4m3 (as int).
|
|
367
|
-
|
|
368
|
-
:param fval: float to convert
|
|
369
|
-
:param scale: scale, divide *fval* by *scale* before casting it
|
|
370
|
-
:param fn: no infinite values
|
|
371
|
-
:param uz: no negative zero
|
|
372
|
-
:param saturate: if True, any value out of range included inf becomes the maximum value,
|
|
373
|
-
otherwise, it becomes NaN. The description of operator Cast fully describes the
|
|
374
|
-
differences.
|
|
375
|
-
:return: converted float
|
|
389
|
+
"""Convert a float32 value to a float8, e4m3 (as int).
|
|
376
390
|
|
|
377
391
|
See :ref:`onnx-detail-float8` for technical details.
|
|
392
|
+
|
|
393
|
+
Args:
|
|
394
|
+
fval: float to convert
|
|
395
|
+
scale: scale, divide *fval* by *scale* before casting it
|
|
396
|
+
fn: no infinite values
|
|
397
|
+
uz: no negative zero
|
|
398
|
+
saturate: if True, any value out of range included inf becomes
|
|
399
|
+
the maximum value, otherwise, it becomes NaN. The
|
|
400
|
+
description of operator Cast fully describes the
|
|
401
|
+
differences.
|
|
402
|
+
|
|
403
|
+
Returns:
|
|
404
|
+
converted float
|
|
378
405
|
"""
|
|
379
406
|
if not fn:
|
|
380
407
|
raise NotImplementedError(
|
|
@@ -393,47 +420,45 @@ def float32_to_float8e4m3( # noqa: PLR0911
|
|
|
393
420
|
e = (b & 0x7F800000) >> 23 # exponent
|
|
394
421
|
m = b & 0x007FFFFF # mantissa
|
|
395
422
|
|
|
396
|
-
if e
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
)
|
|
423
|
+
if e < 116: # noqa: PLR2004
|
|
424
|
+
ret = 0
|
|
425
|
+
elif e < 120: # noqa: PLR2004
|
|
426
|
+
# denormalized number
|
|
427
|
+
ex = e - 119
|
|
428
|
+
if ex >= -2: # noqa: PLR2004
|
|
429
|
+
ret |= 1 << (2 + ex)
|
|
430
|
+
ret |= m >> (21 - ex)
|
|
431
|
+
elif m > 0:
|
|
432
|
+
ret |= 1
|
|
433
|
+
else:
|
|
434
|
+
ret = 0
|
|
435
|
+
mask = 1 << (20 - ex)
|
|
436
|
+
if m & mask and (
|
|
437
|
+
ret & 1
|
|
438
|
+
or m & (mask - 1) > 0
|
|
439
|
+
or (m & mask and m & (mask << 1) and m & (mask - 1) == 0)
|
|
440
|
+
):
|
|
441
|
+
# rounding
|
|
442
|
+
ret += 1
|
|
443
|
+
elif e < 135: # noqa: PLR2004
|
|
444
|
+
# normalized number
|
|
445
|
+
ex = e - 119 # 127 - 8
|
|
446
|
+
if ex == 0:
|
|
447
|
+
ret |= 0x4
|
|
448
|
+
ret |= m >> 21
|
|
449
|
+
else:
|
|
450
|
+
ret |= ex << 3
|
|
451
|
+
ret |= m >> 20
|
|
452
|
+
if m & 0x80000 and ((m & 0x100000) or (m & 0x7FFFF)):
|
|
453
|
+
if (ret & 0x7F) < 0x7F: # noqa: PLR2004
|
|
413
454
|
# rounding
|
|
414
455
|
ret += 1
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
else:
|
|
422
|
-
ret |= ex << 3
|
|
423
|
-
ret |= m >> 20
|
|
424
|
-
if m & 0x80000 and ((m & 0x100000) or (m & 0x7FFFF)):
|
|
425
|
-
if (ret & 0x7F) < 0x7F: # noqa: PLR2004
|
|
426
|
-
# rounding
|
|
427
|
-
ret += 1
|
|
428
|
-
elif not saturate:
|
|
429
|
-
return 0x80
|
|
430
|
-
elif saturate:
|
|
431
|
-
ret |= 0x7F # 01111110
|
|
432
|
-
else:
|
|
433
|
-
ret = 0x80
|
|
434
|
-
elif m == 0:
|
|
435
|
-
# -0
|
|
436
|
-
ret = 0
|
|
456
|
+
elif not saturate:
|
|
457
|
+
return 0x80
|
|
458
|
+
elif saturate:
|
|
459
|
+
ret |= 0x7F # 01111110
|
|
460
|
+
else:
|
|
461
|
+
ret = 0x80
|
|
437
462
|
return int(ret)
|
|
438
463
|
else:
|
|
439
464
|
if (b & 0x7FC00000) == 0x7FC00000: # noqa: PLR2004
|
|
@@ -495,17 +520,20 @@ def float32_to_float8e5m2( # noqa: PLR0911
|
|
|
495
520
|
uz: bool = False,
|
|
496
521
|
saturate: bool = True,
|
|
497
522
|
) -> int:
|
|
498
|
-
"""
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
523
|
+
"""Convert a float32 value to a float8, e5m2 (as int).
|
|
524
|
+
|
|
525
|
+
Args:
|
|
526
|
+
fval: float to convert
|
|
527
|
+
scale: scale, divide *fval* by *scale* before casting it
|
|
528
|
+
fn: no infinite values
|
|
529
|
+
uz: no negative zero
|
|
530
|
+
saturate: if True, any value out of range included inf becomes
|
|
531
|
+
the maximum value, otherwise, it becomes NaN. The
|
|
532
|
+
description of operator Cast fully describes the
|
|
533
|
+
differences.
|
|
534
|
+
|
|
535
|
+
Returns:
|
|
536
|
+
converted float
|
|
509
537
|
"""
|
|
510
538
|
x = fval / scale
|
|
511
539
|
b = int.from_bytes(struct.pack("<f", np.float32(x)), "little")
|
|
@@ -522,45 +550,43 @@ def float32_to_float8e5m2( # noqa: PLR0911
|
|
|
522
550
|
e = (b & 0x7F800000) >> 23 # exponent
|
|
523
551
|
m = b & 0x007FFFFF # mantissa
|
|
524
552
|
|
|
525
|
-
if e
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
)
|
|
553
|
+
if e < 109: # noqa: PLR2004
|
|
554
|
+
ret = 0
|
|
555
|
+
elif e < 112: # noqa: PLR2004
|
|
556
|
+
# denormalized number
|
|
557
|
+
ex = e - 111
|
|
558
|
+
if ex >= -1:
|
|
559
|
+
ret |= 1 << (1 + ex)
|
|
560
|
+
ret |= m >> (22 - ex)
|
|
561
|
+
elif m > 0:
|
|
562
|
+
ret |= 1
|
|
563
|
+
else:
|
|
564
|
+
ret = 0
|
|
565
|
+
mask = 1 << (21 - ex)
|
|
566
|
+
if m & mask and (
|
|
567
|
+
ret & 1
|
|
568
|
+
or m & (mask - 1) > 0
|
|
569
|
+
or (m & mask and m & (mask << 1) and m & (mask - 1) == 0)
|
|
570
|
+
):
|
|
571
|
+
# rounding
|
|
572
|
+
ret += 1
|
|
573
|
+
elif e < 143: # noqa: PLR2004
|
|
574
|
+
# normalized number
|
|
575
|
+
ex = e - 111
|
|
576
|
+
ret |= ex << 2
|
|
577
|
+
ret |= m >> 21
|
|
578
|
+
if m & 0x100000 and ((m & 0xFFFFF) or (m & 0x200000)):
|
|
579
|
+
if (ret & 0x7F) < 0x7F: # noqa: PLR2004
|
|
542
580
|
# rounding
|
|
543
581
|
ret += 1
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
ret += 1
|
|
553
|
-
elif not saturate:
|
|
554
|
-
ret = 0x80
|
|
555
|
-
elif e == 255 and m == 0: # inf # noqa: PLR2004
|
|
556
|
-
ret = 0x80
|
|
557
|
-
elif saturate:
|
|
558
|
-
ret |= 0x7F # last possible number
|
|
559
|
-
else:
|
|
560
|
-
ret = 0x80
|
|
561
|
-
elif m == 0:
|
|
562
|
-
# -0
|
|
563
|
-
ret = 0
|
|
582
|
+
elif not saturate:
|
|
583
|
+
ret = 0x80
|
|
584
|
+
elif e == 255 and m == 0: # inf # noqa: PLR2004
|
|
585
|
+
ret = 0x80
|
|
586
|
+
elif saturate:
|
|
587
|
+
ret |= 0x7F # last possible number
|
|
588
|
+
else:
|
|
589
|
+
ret = 0x80
|
|
564
590
|
return int(ret)
|
|
565
591
|
elif not fn and not uz:
|
|
566
592
|
if (b & 0x7FC00000) == 0x7FC00000: # noqa: PLR2004
|
|
@@ -613,17 +639,44 @@ def float32_to_float8e5m2( # noqa: PLR0911
|
|
|
613
639
|
raise NotImplementedError("fn and uz must be both False or True.")
|
|
614
640
|
|
|
615
641
|
|
|
642
|
+
def pack_float32_to_4bit(
|
|
643
|
+
array: Union[np.ndarray, Sequence], signed: bool
|
|
644
|
+
) -> np.ndarray:
|
|
645
|
+
"""Convert an array of float32 value to a 4bit data-type and pack every two concecutive elements in a byte.
|
|
646
|
+
See :ref:`onnx-detail-int4` for technical details.
|
|
647
|
+
|
|
648
|
+
Args:
|
|
649
|
+
array: array of float to convert and pack
|
|
650
|
+
signed: Whether the 4 bit variant is signed or unsigned
|
|
651
|
+
|
|
652
|
+
Returns:
|
|
653
|
+
Packed array with size `ceil(farray.size/2)` (single dimension).
|
|
654
|
+
"""
|
|
655
|
+
if not isinstance(array, np.ndarray):
|
|
656
|
+
array = np.asarray(array, dtype=np.float32)
|
|
657
|
+
|
|
658
|
+
array_flat = array.ravel()
|
|
659
|
+
is_odd_volume = np.prod(array.shape) % 2 == 1
|
|
660
|
+
if is_odd_volume:
|
|
661
|
+
array_flat = np.append(array_flat, np.array([0]))
|
|
662
|
+
|
|
663
|
+
single_func = lambda x, y: subbyte.float32x2_to_4bitx2(x, y, signed) # noqa: E731
|
|
664
|
+
func = np.frompyfunc(single_func, 2, 1)
|
|
665
|
+
|
|
666
|
+
arr = func(array_flat[0::2], array_flat[1::2])
|
|
667
|
+
return arr.astype(np.uint8) # type: ignore[no-any-return]
|
|
668
|
+
|
|
669
|
+
|
|
616
670
|
def make_tensor(
|
|
617
671
|
name: str, data_type: int, dims: Sequence[int], vals: Any, raw: bool = False
|
|
618
672
|
) -> TensorProto:
|
|
619
|
-
"""
|
|
620
|
-
Make a TensorProto with specified arguments. If raw is False, this
|
|
673
|
+
"""Make a TensorProto with specified arguments. If raw is False, this
|
|
621
674
|
function will choose the corresponding proto field to store the
|
|
622
675
|
values based on data_type. If raw is True, use "raw_data" proto
|
|
623
676
|
field to store the values, and values should be of type bytes in
|
|
624
677
|
this case.
|
|
625
678
|
|
|
626
|
-
|
|
679
|
+
Args:
|
|
627
680
|
name (string): tensor name
|
|
628
681
|
data_type (int): a value such as onnx.TensorProto.FLOAT
|
|
629
682
|
dims (List[int]): shape
|
|
@@ -646,8 +699,7 @@ def make_tensor(
|
|
|
646
699
|
# Check number of vals specified equals tensor size
|
|
647
700
|
expected_size = 1
|
|
648
701
|
if raw:
|
|
649
|
-
# NumPy doesn't have BFLOAT16.
|
|
650
|
-
# which has the wrong itemsize.
|
|
702
|
+
# NumPy doesn't have BFLOAT16. TENSOR_TYPE_MAP maps it to float32, which has the wrong itemsize.
|
|
651
703
|
if data_type == TensorProto.BFLOAT16:
|
|
652
704
|
expected_size = 2
|
|
653
705
|
elif data_type in (
|
|
@@ -657,6 +709,9 @@ def make_tensor(
|
|
|
657
709
|
TensorProto.FLOAT8E5M2FNUZ,
|
|
658
710
|
):
|
|
659
711
|
expected_size = 1
|
|
712
|
+
# NumPy doesn't have INT4. It is packed in couples to UINT8 buffers.
|
|
713
|
+
elif data_type in (TensorProto.UINT4, TensorProto.INT4):
|
|
714
|
+
expected_size = 0.5 # type: ignore[assignment]
|
|
660
715
|
else:
|
|
661
716
|
expected_size = np_dtype.itemsize
|
|
662
717
|
|
|
@@ -666,9 +721,14 @@ def make_tensor(
|
|
|
666
721
|
expected_size *= d
|
|
667
722
|
|
|
668
723
|
if len(vals) != expected_size:
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
724
|
+
# padding of half a byte is acceptable for 4bit types
|
|
725
|
+
if not (
|
|
726
|
+
data_type in (TensorProto.UINT4, TensorProto.INT4)
|
|
727
|
+
and len(vals) == expected_size + 0.5
|
|
728
|
+
):
|
|
729
|
+
raise ValueError(
|
|
730
|
+
f"Number of values does not match tensor's size. Expected {expected_size}, but it is {len(vals)}. "
|
|
731
|
+
)
|
|
672
732
|
|
|
673
733
|
if raw:
|
|
674
734
|
tensor.raw_data = vals
|
|
@@ -705,6 +765,17 @@ def make_tensor(
|
|
|
705
765
|
np.array(vals).astype(np_dtype).flatten().tolist(),
|
|
706
766
|
)
|
|
707
767
|
)
|
|
768
|
+
elif data_type in (
|
|
769
|
+
TensorProto.UINT4,
|
|
770
|
+
TensorProto.INT4,
|
|
771
|
+
):
|
|
772
|
+
signed = data_type == TensorProto.INT4
|
|
773
|
+
vals = (
|
|
774
|
+
pack_float32_to_4bit(vals, signed=signed)
|
|
775
|
+
.astype(np_dtype)
|
|
776
|
+
.flatten()
|
|
777
|
+
.tolist()
|
|
778
|
+
)
|
|
708
779
|
elif data_type == TensorProto.BOOL:
|
|
709
780
|
vals = np.array(vals).astype(int)
|
|
710
781
|
elif data_type == TensorProto.STRING:
|
|
@@ -720,7 +791,7 @@ def make_sparse_tensor(
|
|
|
720
791
|
) -> SparseTensorProto:
|
|
721
792
|
"""Construct a SparseTensorProto
|
|
722
793
|
|
|
723
|
-
|
|
794
|
+
Args:
|
|
724
795
|
values (TensorProto): the values
|
|
725
796
|
indices (TensorProto): the indices
|
|
726
797
|
dims: the shape
|
|
@@ -740,9 +811,7 @@ def make_sequence(
|
|
|
740
811
|
elem_type: SequenceProto.DataType,
|
|
741
812
|
values: Sequence[Any],
|
|
742
813
|
) -> SequenceProto:
|
|
743
|
-
"""
|
|
744
|
-
Make a Sequence with specified value arguments.
|
|
745
|
-
"""
|
|
814
|
+
"""Make a Sequence with specified value arguments."""
|
|
746
815
|
sequence = SequenceProto()
|
|
747
816
|
sequence.name = name
|
|
748
817
|
sequence.elem_type = elem_type
|
|
@@ -769,8 +838,7 @@ def make_sequence(
|
|
|
769
838
|
def make_map(
|
|
770
839
|
name: str, key_type: int, keys: List[Any], values: SequenceProto
|
|
771
840
|
) -> MapProto:
|
|
772
|
-
"""
|
|
773
|
-
Make a Map with specified key-value pair arguments.
|
|
841
|
+
"""Make a Map with specified key-value pair arguments.
|
|
774
842
|
|
|
775
843
|
Criteria for conversion:
|
|
776
844
|
- Keys and Values must have the same number of elements
|
|
@@ -803,9 +871,7 @@ def make_optional(
|
|
|
803
871
|
elem_type: OptionalProto.DataType,
|
|
804
872
|
value: Optional[Any],
|
|
805
873
|
) -> OptionalProto:
|
|
806
|
-
"""
|
|
807
|
-
Make an Optional with specified value arguments.
|
|
808
|
-
"""
|
|
874
|
+
"""Make an Optional with specified value arguments."""
|
|
809
875
|
optional = OptionalProto()
|
|
810
876
|
optional.name = name
|
|
811
877
|
optional.elem_type = elem_type
|
|
@@ -997,7 +1063,6 @@ def make_tensor_type_proto(
|
|
|
997
1063
|
shape_denotation: Optional[List[str]] = None,
|
|
998
1064
|
) -> TypeProto:
|
|
999
1065
|
"""Makes a Tensor TypeProto based on the data type and shape."""
|
|
1000
|
-
|
|
1001
1066
|
type_proto = TypeProto()
|
|
1002
1067
|
tensor_type_proto = type_proto.tensor_type
|
|
1003
1068
|
tensor_type_proto.elem_type = elem_type
|
|
@@ -1061,7 +1126,6 @@ def make_sparse_tensor_type_proto(
|
|
|
1061
1126
|
shape_denotation: Optional[List[str]] = None,
|
|
1062
1127
|
) -> TypeProto:
|
|
1063
1128
|
"""Makes a SparseTensor TypeProto based on the data type and shape."""
|
|
1064
|
-
|
|
1065
1129
|
type_proto = TypeProto()
|
|
1066
1130
|
sparse_tensor_type_proto = type_proto.sparse_tensor_type
|
|
1067
1131
|
sparse_tensor_type_proto.elem_type = elem_type
|
|
@@ -1290,7 +1354,7 @@ def printable_type(t: TypeProto) -> str:
|
|
|
1290
1354
|
s += str(", " + "x".join(map(printable_dim, t.tensor_type.shape.dim)))
|
|
1291
1355
|
else:
|
|
1292
1356
|
s += ", scalar"
|
|
1293
|
-
return s
|
|
1357
|
+
return s # type: ignore[no-any-return]
|
|
1294
1358
|
if t.WhichOneof("value") is None:
|
|
1295
1359
|
return ""
|
|
1296
1360
|
return f"Unknown type {t.WhichOneof('value')}"
|
|
@@ -1351,10 +1415,9 @@ def printable_node(
|
|
|
1351
1415
|
|
|
1352
1416
|
|
|
1353
1417
|
def printable_graph(graph: GraphProto, prefix: str = "") -> str:
|
|
1354
|
-
"""
|
|
1355
|
-
Display a GraphProto as a string.
|
|
1418
|
+
"""Display a GraphProto as a string.
|
|
1356
1419
|
|
|
1357
|
-
|
|
1420
|
+
Args:
|
|
1358
1421
|
graph (GraphProto): the graph to display
|
|
1359
1422
|
prefix (string): prefix of every line
|
|
1360
1423
|
|
|
@@ -1431,9 +1494,7 @@ def printable_graph(graph: GraphProto, prefix: str = "") -> str:
|
|
|
1431
1494
|
|
|
1432
1495
|
|
|
1433
1496
|
def strip_doc_string(proto: google.protobuf.message.Message) -> None:
|
|
1434
|
-
"""
|
|
1435
|
-
Empties `doc_string` field on any nested protobuf messages
|
|
1436
|
-
"""
|
|
1497
|
+
"""Empties `doc_string` field on any nested protobuf messages"""
|
|
1437
1498
|
if not isinstance(proto, google.protobuf.message.Message):
|
|
1438
1499
|
raise TypeError(
|
|
1439
1500
|
f"proto must be an instance of {google.protobuf.message.Message}."
|
|
@@ -1475,41 +1536,49 @@ def make_training_info(
|
|
|
1475
1536
|
|
|
1476
1537
|
# Following functions are used for mapping
|
|
1477
1538
|
def tensor_dtype_to_np_dtype(tensor_dtype: int) -> np.dtype:
|
|
1478
|
-
"""
|
|
1479
|
-
|
|
1539
|
+
"""Convert a TensorProto's data_type to corresponding numpy dtype. It can be used while making tensor.
|
|
1540
|
+
|
|
1541
|
+
Args:
|
|
1542
|
+
tensor_dtype: TensorProto's data_type
|
|
1480
1543
|
|
|
1481
|
-
:
|
|
1482
|
-
|
|
1544
|
+
Returns:
|
|
1545
|
+
numpy's data_type
|
|
1483
1546
|
"""
|
|
1484
1547
|
return mapping.TENSOR_TYPE_MAP[tensor_dtype].np_dtype
|
|
1485
1548
|
|
|
1486
1549
|
|
|
1487
1550
|
def tensor_dtype_to_storage_tensor_dtype(tensor_dtype: int) -> int:
|
|
1488
|
-
"""
|
|
1489
|
-
Convert a TensorProto's data_type to corresponding data_type for storage.
|
|
1551
|
+
"""Convert a TensorProto's data_type to corresponding data_type for storage.
|
|
1490
1552
|
|
|
1491
|
-
:
|
|
1492
|
-
|
|
1553
|
+
Args:
|
|
1554
|
+
tensor_dtype: TensorProto's data_type
|
|
1555
|
+
|
|
1556
|
+
Returns:
|
|
1557
|
+
data_type for storage
|
|
1493
1558
|
"""
|
|
1494
1559
|
return mapping.TENSOR_TYPE_MAP[tensor_dtype].storage_dtype
|
|
1495
1560
|
|
|
1496
1561
|
|
|
1497
1562
|
def tensor_dtype_to_string(tensor_dtype: int) -> str:
|
|
1498
|
-
"""
|
|
1499
|
-
|
|
1563
|
+
"""Get the name of given TensorProto's data_type.
|
|
1564
|
+
|
|
1565
|
+
Args:
|
|
1566
|
+
tensor_dtype: TensorProto's data_type
|
|
1500
1567
|
|
|
1501
|
-
:
|
|
1502
|
-
|
|
1568
|
+
Returns:
|
|
1569
|
+
the name of data_type
|
|
1503
1570
|
"""
|
|
1504
1571
|
return mapping.TENSOR_TYPE_MAP[tensor_dtype].name
|
|
1505
1572
|
|
|
1506
1573
|
|
|
1507
1574
|
def tensor_dtype_to_field(tensor_dtype: int) -> str:
|
|
1508
|
-
"""
|
|
1509
|
-
Convert a TensorProto's data_type to corresponding field name for storage. It can be used while making tensors.
|
|
1575
|
+
"""Convert a TensorProto's data_type to corresponding field name for storage. It can be used while making tensors.
|
|
1510
1576
|
|
|
1511
|
-
:
|
|
1512
|
-
|
|
1577
|
+
Args:
|
|
1578
|
+
tensor_dtype: TensorProto's data_type
|
|
1579
|
+
|
|
1580
|
+
Returns:
|
|
1581
|
+
field name
|
|
1513
1582
|
"""
|
|
1514
1583
|
return mapping._STORAGE_TENSOR_TYPE_TO_FIELD[
|
|
1515
1584
|
mapping.TENSOR_TYPE_MAP[tensor_dtype].storage_dtype
|
|
@@ -1517,11 +1586,13 @@ def tensor_dtype_to_field(tensor_dtype: int) -> str:
|
|
|
1517
1586
|
|
|
1518
1587
|
|
|
1519
1588
|
def np_dtype_to_tensor_dtype(np_dtype: np.dtype) -> int:
|
|
1520
|
-
"""
|
|
1521
|
-
|
|
1589
|
+
"""Convert a numpy's dtype to corresponding tensor type. It can be used while converting numpy arrays to tensors.
|
|
1590
|
+
|
|
1591
|
+
Args:
|
|
1592
|
+
np_dtype: numpy's data_type
|
|
1522
1593
|
|
|
1523
|
-
:
|
|
1524
|
-
|
|
1594
|
+
Returns:
|
|
1595
|
+
TensorsProto's data_type
|
|
1525
1596
|
"""
|
|
1526
1597
|
return cast(
|
|
1527
1598
|
int,
|
|
@@ -1530,10 +1601,10 @@ def np_dtype_to_tensor_dtype(np_dtype: np.dtype) -> int:
|
|
|
1530
1601
|
|
|
1531
1602
|
|
|
1532
1603
|
def get_all_tensor_dtypes() -> KeysView[int]:
|
|
1533
|
-
"""
|
|
1534
|
-
Get all tensor types from TensorProto.
|
|
1604
|
+
"""Get all tensor types from TensorProto.
|
|
1535
1605
|
|
|
1536
|
-
:
|
|
1606
|
+
Returns:
|
|
1607
|
+
all tensor types from TensorProto
|
|
1537
1608
|
"""
|
|
1538
1609
|
return mapping.TENSOR_TYPE_MAP.keys()
|
|
1539
1610
|
|
|
@@ -1542,12 +1613,14 @@ _ATTRIBUTE_TYPE_TO_STR = {k: v for v, k in AttributeProto.AttributeType.items()}
|
|
|
1542
1613
|
|
|
1543
1614
|
|
|
1544
1615
|
def _attr_type_to_str(attr_type: int) -> str:
|
|
1545
|
-
"""
|
|
1546
|
-
Convert AttributeProto type to string.
|
|
1616
|
+
"""Convert AttributeProto type to string.
|
|
1547
1617
|
|
|
1548
|
-
:
|
|
1549
|
-
|
|
1618
|
+
Args:
|
|
1619
|
+
attr_type: AttributeProto type.
|
|
1620
|
+
|
|
1621
|
+
Returns:
|
|
1622
|
+
String representing the supplied attr_type.
|
|
1550
1623
|
"""
|
|
1551
1624
|
if attr_type in AttributeProto.AttributeType.values():
|
|
1552
|
-
return _ATTRIBUTE_TYPE_TO_STR[attr_type]
|
|
1553
|
-
return AttributeProto.AttributeType.keys()[0]
|
|
1625
|
+
return _ATTRIBUTE_TYPE_TO_STR[attr_type] # type: ignore[no-any-return]
|
|
1626
|
+
return AttributeProto.AttributeType.keys()[0] # type: ignore[no-any-return]
|