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
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# @generated by protoc-gen-mypy.py. Do not edit!
|
|
2
|
+
# mypy: disable-error-code=override
|
|
3
|
+
from google.protobuf.message import ( # type: ignore
|
|
4
|
+
Message,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
from onnx.onnx_ml_pb2 import (
|
|
8
|
+
FunctionProto,
|
|
9
|
+
OperatorStatus,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
from typing import (
|
|
13
|
+
Iterable,
|
|
14
|
+
Optional as OptionalType,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
from google.protobuf.internal.containers import ( # type: ignore
|
|
18
|
+
RepeatedCompositeFieldContainer,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
class OperatorProto(Message):
|
|
22
|
+
op_type = ... # type: str
|
|
23
|
+
since_version = ... # type: int
|
|
24
|
+
status = ... # type: OperatorStatus
|
|
25
|
+
doc_string = ... # type: str
|
|
26
|
+
|
|
27
|
+
def __init__(self,
|
|
28
|
+
op_type : OptionalType[str] = None,
|
|
29
|
+
since_version : OptionalType[int] = None,
|
|
30
|
+
status : OptionalType[OperatorStatus] = None,
|
|
31
|
+
doc_string : OptionalType[str] = None,
|
|
32
|
+
) -> None: ...
|
|
33
|
+
@classmethod
|
|
34
|
+
def FromString(cls, s: bytes) -> OperatorProto: ...
|
|
35
|
+
def MergeFrom(self, other_msg: Message) -> None: ...
|
|
36
|
+
def CopyFrom(self, other_msg: Message) -> None: ...
|
|
37
|
+
|
|
38
|
+
class OperatorSetProto(Message):
|
|
39
|
+
magic = ... # type: str
|
|
40
|
+
ir_version = ... # type: int
|
|
41
|
+
ir_version_prerelease = ... # type: str
|
|
42
|
+
ir_build_metadata = ... # type: str
|
|
43
|
+
domain = ... # type: str
|
|
44
|
+
opset_version = ... # type: int
|
|
45
|
+
doc_string = ... # type: str
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def operator(self) -> RepeatedCompositeFieldContainer[OperatorProto]: ...
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def functions(self) -> RepeatedCompositeFieldContainer[FunctionProto]: ...
|
|
52
|
+
|
|
53
|
+
def __init__(self,
|
|
54
|
+
magic : OptionalType[str] = None,
|
|
55
|
+
ir_version : OptionalType[int] = None,
|
|
56
|
+
ir_version_prerelease : OptionalType[str] = None,
|
|
57
|
+
ir_build_metadata : OptionalType[str] = None,
|
|
58
|
+
domain : OptionalType[str] = None,
|
|
59
|
+
opset_version : OptionalType[int] = None,
|
|
60
|
+
doc_string : OptionalType[str] = None,
|
|
61
|
+
operator : OptionalType[Iterable[OperatorProto]] = None,
|
|
62
|
+
functions : OptionalType[Iterable[FunctionProto]] = None,
|
|
63
|
+
) -> None: ...
|
|
64
|
+
@classmethod
|
|
65
|
+
def FromString(cls, s: bytes) -> OperatorSetProto: ...
|
|
66
|
+
def MergeFrom(self, other_msg: Message) -> None: ...
|
|
67
|
+
def CopyFrom(self, other_msg: Message) -> None: ...
|
onnx/reference/__init__.py
CHANGED
|
@@ -9,3 +9,5 @@ float8e4m3fn = np.dtype((np.uint8, {"e4m3fn": (np.uint8, 0)}))
|
|
|
9
9
|
float8e4m3fnuz = np.dtype((np.uint8, {"e4m3fnuz": (np.uint8, 0)}))
|
|
10
10
|
float8e5m2 = np.dtype((np.uint8, {"e5m2": (np.uint8, 0)}))
|
|
11
11
|
float8e5m2fnuz = np.dtype((np.uint8, {"e5m2fnuz": (np.uint8, 0)}))
|
|
12
|
+
uint4 = np.dtype((np.uint8, {"uint4": (np.uint8, 0)}))
|
|
13
|
+
int4 = np.dtype((np.int8, {"int4": (np.int8, 0)}))
|
onnx/reference/op_run.py
CHANGED
|
@@ -11,7 +11,7 @@ import numpy as np
|
|
|
11
11
|
from onnx import TensorProto
|
|
12
12
|
from onnx.defs import get_all_schemas_with_history, get_schema, onnx_opset_version
|
|
13
13
|
from onnx.helper import make_node, make_tensor_type_proto, np_dtype_to_tensor_dtype
|
|
14
|
-
from onnx.numpy_helper import to_array
|
|
14
|
+
from onnx.numpy_helper import to_array, unpack_int4
|
|
15
15
|
from onnx.onnx_pb import AttributeProto, GraphProto, NodeProto, TypeProto
|
|
16
16
|
from onnx.reference.custom_element_types import (
|
|
17
17
|
bfloat16,
|
|
@@ -19,6 +19,8 @@ from onnx.reference.custom_element_types import (
|
|
|
19
19
|
float8e4m3fnuz,
|
|
20
20
|
float8e5m2,
|
|
21
21
|
float8e5m2fnuz,
|
|
22
|
+
int4,
|
|
23
|
+
uint4,
|
|
22
24
|
)
|
|
23
25
|
|
|
24
26
|
|
|
@@ -34,43 +36,32 @@ def _split_class_name(name): # type: ignore
|
|
|
34
36
|
|
|
35
37
|
|
|
36
38
|
class RuntimeTypeError(RuntimeError):
|
|
37
|
-
"""
|
|
38
|
-
Raised when a type of a variable is unexpected.
|
|
39
|
-
"""
|
|
39
|
+
"""Raised when a type of a variable is unexpected."""
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class RuntimeContextError(RuntimeError):
|
|
43
|
-
"""
|
|
44
|
-
Raised when the context is missing but an context dependent implementation is defined for an operator.
|
|
45
|
-
"""
|
|
43
|
+
"""Raised when the context is missing but an context dependent implementation is defined for an operator."""
|
|
46
44
|
|
|
47
45
|
|
|
48
46
|
class RuntimeImplementationError(NotImplementedError):
|
|
49
|
-
"""
|
|
50
|
-
Raised when no implementation was found for an operator.
|
|
51
|
-
"""
|
|
47
|
+
"""Raised when no implementation was found for an operator."""
|
|
52
48
|
|
|
53
49
|
|
|
54
50
|
class DefaultNone:
|
|
55
|
-
"""
|
|
56
|
-
Default value for parameters when the parameter is not set
|
|
57
|
-
but the operator has a default behavior for it.
|
|
58
|
-
"""
|
|
51
|
+
"""Default value for parameters when the parameter is not set but the operator has a default behavior for it."""
|
|
59
52
|
|
|
60
53
|
|
|
61
54
|
class RefAttrName:
|
|
62
|
-
"""
|
|
63
|
-
Implements a link between a parameter of a function
|
|
64
|
-
and an attribute in node.
|
|
55
|
+
"""Implements a link between a parameter of a function and an attribute in node.
|
|
65
56
|
|
|
66
|
-
:
|
|
57
|
+
Args:
|
|
58
|
+
name: name of the input
|
|
67
59
|
"""
|
|
68
60
|
|
|
69
61
|
def __init__(self, name: str):
|
|
70
62
|
self.name = name
|
|
71
63
|
|
|
72
64
|
def __repr__(self) -> str:
|
|
73
|
-
"usual"
|
|
74
65
|
return f"{self.__class__.__name__}({self.name!r})"
|
|
75
66
|
|
|
76
67
|
|
|
@@ -107,8 +98,7 @@ class OnnxType:
|
|
|
107
98
|
|
|
108
99
|
|
|
109
100
|
class SparseTensor:
|
|
110
|
-
"""
|
|
111
|
-
Simple representation of a sparse tensor.
|
|
101
|
+
"""Simple representation of a sparse tensor.
|
|
112
102
|
It is based on numpy but does not require scipy.
|
|
113
103
|
"""
|
|
114
104
|
|
|
@@ -125,17 +115,14 @@ class SparseTensor:
|
|
|
125
115
|
|
|
126
116
|
|
|
127
117
|
def to_sparse_tensor(att: AttributeProto) -> SparseTensor:
|
|
128
|
-
"""
|
|
129
|
-
Hosts a sparse tensor.
|
|
130
|
-
"""
|
|
118
|
+
"""Hosts a sparse tensor."""
|
|
131
119
|
shape = tuple(d for d in att.dims) # type: ignore[attr-defined]
|
|
132
120
|
return SparseTensor(to_array(att.values), to_array(att.indices), shape) # type: ignore
|
|
133
121
|
|
|
134
122
|
|
|
135
123
|
def to_array_extended(tensor: TensorProto) -> np.ndarray:
|
|
136
|
-
"""
|
|
137
|
-
|
|
138
|
-
float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz.
|
|
124
|
+
"""Similar to :func:`to_array` but deals with non-numpy types bfloat16,
|
|
125
|
+
float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, uint4, int4.
|
|
139
126
|
"""
|
|
140
127
|
elem_type = tensor.data_type
|
|
141
128
|
if elem_type == TensorProto.BFLOAT16:
|
|
@@ -168,6 +155,21 @@ def to_array_extended(tensor: TensorProto) -> np.ndarray:
|
|
|
168
155
|
for i, d in enumerate(data):
|
|
169
156
|
y[i] = d
|
|
170
157
|
return y.reshape(shape)
|
|
158
|
+
if elem_type in (TensorProto.UINT4, TensorProto.INT4):
|
|
159
|
+
if tensor.HasField("raw_data"):
|
|
160
|
+
data = tensor.raw_data # type: ignore[assignment]
|
|
161
|
+
else:
|
|
162
|
+
data = tensor.int32_data
|
|
163
|
+
shape = tuple(tensor.dims)
|
|
164
|
+
m = {TensorProto.INT4: int4, TensorProto.UINT4: uint4}
|
|
165
|
+
dtype = m[elem_type] # type: ignore[index]
|
|
166
|
+
signed = elem_type == TensorProto.INT4
|
|
167
|
+
y = np.empty(len(data), dtype=dtype).ravel()
|
|
168
|
+
for i, d in enumerate(data):
|
|
169
|
+
y[i] = d
|
|
170
|
+
|
|
171
|
+
unpacked_data = unpack_int4(y, dims=shape, signed=signed)
|
|
172
|
+
return unpacked_data.astype(dtype)
|
|
171
173
|
return to_array(tensor)
|
|
172
174
|
|
|
173
175
|
|
|
@@ -179,14 +181,14 @@ class Graph:
|
|
|
179
181
|
|
|
180
182
|
|
|
181
183
|
class OpRun(abc.ABC):
|
|
182
|
-
"""
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
184
|
+
"""Ancestor to all operators in this subfolder.
|
|
185
|
+
|
|
186
|
+
Args:
|
|
187
|
+
onnx_node: `onnx` node
|
|
188
|
+
run_params: additional parameters such as `verbose`, `opsets`
|
|
189
|
+
(it can be more than one if the operator has a subgraph),
|
|
190
|
+
`log` for a logging function
|
|
191
|
+
schema: operator schema
|
|
190
192
|
"""
|
|
191
193
|
|
|
192
194
|
op_domain = ""
|
|
@@ -245,20 +247,23 @@ class OpRun(abc.ABC):
|
|
|
245
247
|
def _extract_attribute_value(
|
|
246
248
|
self, att: AttributeProto, ref_att: AttributeProto | None = None
|
|
247
249
|
) -> Any:
|
|
248
|
-
"""
|
|
249
|
-
Converts an attribute value into a python value.
|
|
250
|
-
"""
|
|
250
|
+
"""Converts an attribute value into a python value."""
|
|
251
251
|
if att.type == AttributeProto.GRAPH:
|
|
252
|
-
from onnx.reference.reference_evaluator import (
|
|
253
|
-
ReferenceEvaluator, # type: ignore
|
|
254
|
-
)
|
|
255
|
-
|
|
256
252
|
new_ops = self.run_params.get("new_ops", None)
|
|
257
|
-
|
|
253
|
+
if "existing_functions" in self.run_params:
|
|
254
|
+
functions = list(self.run_params["existing_functions"].values())
|
|
255
|
+
else:
|
|
256
|
+
functions = None
|
|
257
|
+
evaluator_cls = self.run_params.get("evaluator_cls", None)
|
|
258
|
+
assert (
|
|
259
|
+
evaluator_cls is not None
|
|
260
|
+
), f"evaluator_cls must be specified to evaluate att={att}"
|
|
261
|
+
return evaluator_cls(
|
|
258
262
|
att.g,
|
|
259
263
|
opsets=self.run_params["opsets"],
|
|
260
264
|
verbose=max(0, self.run_params.get("verbose", 0) - 2),
|
|
261
265
|
new_ops=None if new_ops is None else list(new_ops.values()),
|
|
266
|
+
functions=functions,
|
|
262
267
|
)
|
|
263
268
|
if att.type in OpRun._attribute_conversion_functions:
|
|
264
269
|
return OpRun._attribute_conversion_functions[att.type](att) # type: ignore
|
|
@@ -279,7 +284,7 @@ class OpRun(abc.ABC):
|
|
|
279
284
|
return value.run(None, context or {}, attributes=attributes)
|
|
280
285
|
|
|
281
286
|
def _load_attributes(self) -> None:
|
|
282
|
-
"Checks and loads attributes."
|
|
287
|
+
"""Checks and loads attributes."""
|
|
283
288
|
self.has_linked_attribute = False
|
|
284
289
|
added_attributes = []
|
|
285
290
|
for att in self.onnx_node.attribute:
|
|
@@ -325,8 +330,7 @@ class OpRun(abc.ABC):
|
|
|
325
330
|
|
|
326
331
|
@staticmethod
|
|
327
332
|
def implicit_inputs(graph: GraphProto) -> list[str]:
|
|
328
|
-
"""
|
|
329
|
-
Returns all varibles not registered as inputs and not produced by
|
|
333
|
+
"""Returns all varibles not registered as inputs and not produced by
|
|
330
334
|
an node inside the graph. This inputs are part of the context
|
|
331
335
|
existing in the graph calling this one.
|
|
332
336
|
"""
|
|
@@ -350,27 +354,26 @@ class OpRun(abc.ABC):
|
|
|
350
354
|
|
|
351
355
|
@property
|
|
352
356
|
def input(self) -> Iterable[str]:
|
|
353
|
-
"Returns node attribute `input`."
|
|
357
|
+
"""Returns node attribute `input`."""
|
|
354
358
|
return self.onnx_node.input # type: ignore
|
|
355
359
|
|
|
356
360
|
@property
|
|
357
361
|
def output(self) -> Iterable[str]:
|
|
358
|
-
"Returns node attribute `output`."
|
|
362
|
+
"""Returns node attribute `output`."""
|
|
359
363
|
return self.onnx_node.output # type: ignore
|
|
360
364
|
|
|
361
365
|
@property
|
|
362
366
|
def op_type(self) -> str:
|
|
363
|
-
"Returns node attribute `op_type`."
|
|
367
|
+
"""Returns node attribute `op_type`."""
|
|
364
368
|
return self.onnx_node.op_type # type: ignore
|
|
365
369
|
|
|
366
370
|
@property
|
|
367
371
|
def domain(self) -> str:
|
|
368
|
-
"Returns node attribute `domain`."
|
|
372
|
+
"""Returns node attribute `domain`."""
|
|
369
373
|
return self.onnx_node.domain # type: ignore
|
|
370
374
|
|
|
371
375
|
def need_context(self) -> bool:
|
|
372
|
-
"""
|
|
373
|
-
Tells the runtime if this node needs the context
|
|
376
|
+
"""Tells the runtime if this node needs the context
|
|
374
377
|
(all the results produced so far) as it may silently access
|
|
375
378
|
one of them (operator Scan, If, Loop).
|
|
376
379
|
The default answer is `False`.
|
|
@@ -389,31 +392,67 @@ class OpRun(abc.ABC):
|
|
|
389
392
|
|
|
390
393
|
@abc.abstractmethod
|
|
391
394
|
def _run(self, *args, **kwargs): # type: ignore
|
|
392
|
-
"""
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
395
|
+
"""Should be overwritten.
|
|
396
|
+
|
|
397
|
+
Args:
|
|
398
|
+
*args: operator inputs
|
|
399
|
+
**kwargs: optional inputs and overriden attributes, an
|
|
400
|
+
attribute may be overridden if it belongs to a function,
|
|
401
|
+
in this case, the same instance of OpRun can be called
|
|
402
|
+
with different values of the same attribute.
|
|
403
|
+
|
|
404
|
+
Returns:
|
|
405
|
+
outputs
|
|
401
406
|
"""
|
|
402
407
|
raise NotImplementedError(
|
|
403
408
|
f"Method '_run' must be overwritten for operator {self.__class__.__name__!r}."
|
|
404
409
|
)
|
|
405
410
|
|
|
411
|
+
def _check_and_fix_outputs(self, res: tuple[Any, ...]) -> tuple[Any, ...]:
|
|
412
|
+
"""Checks the output are from the expected type."""
|
|
413
|
+
if not isinstance(res, tuple):
|
|
414
|
+
raise TypeError(
|
|
415
|
+
f"Method '_run' of class {self.__class__.__name__!r} does not return a tuple but '{type(res)}'."
|
|
416
|
+
)
|
|
417
|
+
if not res:
|
|
418
|
+
raise ValueError(
|
|
419
|
+
f"Method '_run' of class {self.__class__.__name__!r} does not return any result."
|
|
420
|
+
)
|
|
421
|
+
if any(isinstance(t, tuple) for t in res):
|
|
422
|
+
dtypes = [type(t) for t in res]
|
|
423
|
+
raise TypeError(
|
|
424
|
+
f"One of the results returned by method '_run' of class {self.__class__.__name__!r} "
|
|
425
|
+
f"is a tuple, this is no ONNX corresponding type (Map, List, Tensor, SparseTensor). "
|
|
426
|
+
f"All returned types: {dtypes!r}."
|
|
427
|
+
)
|
|
428
|
+
res = tuple( # type: ignore[assignment]
|
|
429
|
+
(np.array(x) if np.isscalar(x) else x) for x in res
|
|
430
|
+
)
|
|
431
|
+
if any(
|
|
432
|
+
not (isinstance(t, (np.ndarray, list, dict)) or hasattr(t, "todense"))
|
|
433
|
+
for t in res
|
|
434
|
+
):
|
|
435
|
+
dtypes = [type(t) for t in res]
|
|
436
|
+
raise TypeError(
|
|
437
|
+
f"One of the results returned by method '_run' of class {self.__class__.__name__!r} "
|
|
438
|
+
f"has an unexpected type, this is no ONNX correponding type (Map, List, Tensor, SparseTensor). "
|
|
439
|
+
f"All returned types: {dtypes!r}."
|
|
440
|
+
)
|
|
441
|
+
return res
|
|
442
|
+
|
|
406
443
|
def run(self, *args, linked_attributes=None, context=None): # type: ignore
|
|
407
|
-
"""
|
|
408
|
-
Calls method ``_run``, catches exceptions,
|
|
444
|
+
"""Calls method ``_run``, catches exceptions,
|
|
409
445
|
displays a longer error message.
|
|
410
446
|
|
|
411
|
-
:
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
447
|
+
Args:
|
|
448
|
+
*args: inputs
|
|
449
|
+
linked_attributes: used if this has an attriute linked to
|
|
450
|
+
the attribute of the function it belongs to
|
|
451
|
+
context: if this node is part of the subgraph, `context` is
|
|
452
|
+
a dictionary with the values this node may use
|
|
453
|
+
|
|
454
|
+
Returns:
|
|
455
|
+
tuple of results
|
|
417
456
|
"""
|
|
418
457
|
if self.need_context():
|
|
419
458
|
if context is None:
|
|
@@ -479,23 +518,12 @@ class OpRun(abc.ABC):
|
|
|
479
518
|
f"{sorted(kwargs)} and linked attributes={sorted(overridden_attributes)} "
|
|
480
519
|
f"(operator {self.__class__.__name__!r})."
|
|
481
520
|
) from e
|
|
482
|
-
self._log(
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
raise ValueError(
|
|
489
|
-
f"Method '_run' of class {self.__class__.__name__!r} does not return any result."
|
|
490
|
-
)
|
|
491
|
-
if any(isinstance(t, tuple) for t in res):
|
|
492
|
-
dtypes = [type(t) for t in res]
|
|
493
|
-
raise TypeError(
|
|
494
|
-
f"One of the results returned by method '_run' of class {self.__class__.__name__!r} "
|
|
495
|
-
f"is a tuple, this is no onnx correponding type (Map, List, Tensor, SparseTensor). "
|
|
496
|
-
f"All returned types: {dtypes!r}."
|
|
497
|
-
)
|
|
498
|
-
return res
|
|
521
|
+
self._log(
|
|
522
|
+
"-- done %s.run -> %d outputs",
|
|
523
|
+
self.__class__.__name__,
|
|
524
|
+
len(res) if res is not None else 0,
|
|
525
|
+
)
|
|
526
|
+
return self._check_and_fix_outputs(res)
|
|
499
527
|
|
|
500
528
|
@classmethod
|
|
501
529
|
def infer_name(cls):
|
|
@@ -516,14 +544,18 @@ class OpRun(abc.ABC):
|
|
|
516
544
|
n_outputs: int | None = None,
|
|
517
545
|
**kwargs: Any,
|
|
518
546
|
) -> NodeProto: # type: ignore
|
|
519
|
-
"""
|
|
520
|
-
|
|
547
|
+
"""Creates an ONNX node for this class based on the given information.
|
|
548
|
+
|
|
549
|
+
Args:
|
|
550
|
+
n_inputs: number of inputs (default is defined by the
|
|
551
|
+
operator schema)
|
|
552
|
+
n_outputs: number of outputs (default is defined by the
|
|
553
|
+
operator schema)
|
|
554
|
+
verbose: verbosity
|
|
555
|
+
**kwargs: node attributes
|
|
521
556
|
|
|
522
|
-
:
|
|
523
|
-
|
|
524
|
-
:param verbose: verbosity
|
|
525
|
-
:param kwargs: node attributes
|
|
526
|
-
:return: NodeProto
|
|
557
|
+
Returns:
|
|
558
|
+
NodeProto
|
|
527
559
|
|
|
528
560
|
Method :meth:`eval <onnx.reference.op_run.OpRun.eval>` creates an onnx node
|
|
529
561
|
returned by method :meth:`make_node <onnx.reference.op_run.OpRun.make_node>`.
|
|
@@ -561,14 +593,18 @@ class OpRun(abc.ABC):
|
|
|
561
593
|
verbose: int = 0,
|
|
562
594
|
**kwargs: Any,
|
|
563
595
|
) -> Any:
|
|
564
|
-
"""
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
596
|
+
"""Instantiates this class based on the given information.
|
|
597
|
+
|
|
598
|
+
Args:
|
|
599
|
+
n_inputs: number of inputs (default is defined by the
|
|
600
|
+
operator schema)
|
|
601
|
+
n_outputs: number of outputs (default is defined by the
|
|
602
|
+
operator schema)
|
|
603
|
+
verbose: verbosity
|
|
604
|
+
**kwargs: node attributes
|
|
605
|
+
|
|
606
|
+
Returns:
|
|
607
|
+
NodeProto
|
|
572
608
|
"""
|
|
573
609
|
|
|
574
610
|
def log_function(pattern: str, *args: Any) -> None:
|
|
@@ -593,14 +629,17 @@ class OpRun(abc.ABC):
|
|
|
593
629
|
verbose: int = 0,
|
|
594
630
|
**kwargs: Any,
|
|
595
631
|
) -> Any: # type: ignore
|
|
596
|
-
"""
|
|
597
|
-
Evaluates this operator.
|
|
632
|
+
"""Evaluates this operator.
|
|
598
633
|
|
|
599
|
-
:
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
634
|
+
Args:
|
|
635
|
+
*args: inputs
|
|
636
|
+
n_outputs: number of outputs (default is defined by the
|
|
637
|
+
operator schema)
|
|
638
|
+
verbose: verbosity
|
|
639
|
+
**kwargs: node attributes
|
|
640
|
+
|
|
641
|
+
Returns:
|
|
642
|
+
NodeProto
|
|
604
643
|
"""
|
|
605
644
|
inst = cls.create(len(args), n_outputs=n_outputs, verbose=verbose, **kwargs)
|
|
606
645
|
res = inst.run(*args)
|
|
@@ -610,11 +649,11 @@ class OpRun(abc.ABC):
|
|
|
610
649
|
|
|
611
650
|
|
|
612
651
|
class OpRunExpand(OpRun):
|
|
613
|
-
"""
|
|
614
|
-
Class any operator to avoid must inherit from.
|
|
615
|
-
"""
|
|
652
|
+
"""Class any operator to avoid must inherit from."""
|
|
616
653
|
|
|
617
|
-
def __init__(
|
|
654
|
+
def __init__(
|
|
655
|
+
self, onnx_node: NodeProto, run_params: dict[str, Any], impl: Any = None
|
|
656
|
+
):
|
|
618
657
|
raise RuntimeError(
|
|
619
658
|
f"The reference implementation must not use this node ({type(self)})."
|
|
620
659
|
)
|
|
@@ -626,14 +665,12 @@ class OpRunExpand(OpRun):
|
|
|
626
665
|
|
|
627
666
|
|
|
628
667
|
class OpFunction(OpRun):
|
|
629
|
-
"""
|
|
630
|
-
Runs a custom function.
|
|
631
|
-
"""
|
|
668
|
+
"""Runs a custom function."""
|
|
632
669
|
|
|
633
670
|
def __init__(
|
|
634
671
|
self,
|
|
635
672
|
onnx_node: NodeProto,
|
|
636
|
-
|
|
673
|
+
run_params: dict[str, Any] | None,
|
|
637
674
|
impl: Any = None,
|
|
638
675
|
attributes: dict[str, Any] | None = None,
|
|
639
676
|
):
|
|
@@ -642,7 +679,7 @@ class OpFunction(OpRun):
|
|
|
642
679
|
f"impl cannot be None for node type {onnx_node.op_type!r} "
|
|
643
680
|
f"from domain {onnx_node.domain!r}."
|
|
644
681
|
)
|
|
645
|
-
OpRun.__init__(self, onnx_node,
|
|
682
|
+
OpRun.__init__(self, onnx_node, run_params) # type: ignore[arg-type]
|
|
646
683
|
self.impl_ = impl
|
|
647
684
|
# The function implementation is the same whenever the function is called
|
|
648
685
|
# but the attributes may be different at every call.
|
|
@@ -675,14 +712,18 @@ class OpFunction(OpRun):
|
|
|
675
712
|
|
|
676
713
|
|
|
677
714
|
class OpFunctionContextDependant(OpFunction):
|
|
678
|
-
"""
|
|
679
|
-
The function can be instantiated but only at execution time.
|
|
715
|
+
"""The function can be instantiated but only at execution time.
|
|
680
716
|
An instance of OpFunction is created everytime to node is executed.
|
|
681
717
|
This is needed when the schema of an operator defines a context dependant function.
|
|
682
718
|
"""
|
|
683
719
|
|
|
684
|
-
def __init__(
|
|
685
|
-
|
|
720
|
+
def __init__(
|
|
721
|
+
self,
|
|
722
|
+
onnx_node: NodeProto,
|
|
723
|
+
run_params: dict[str, Any] | None,
|
|
724
|
+
parent: Any = None,
|
|
725
|
+
):
|
|
726
|
+
OpFunction.__init__(self, onnx_node, run_params, impl=self, attributes={})
|
|
686
727
|
self.parent = parent
|
|
687
728
|
version = parent.opsets[onnx_node.domain]
|
|
688
729
|
self.schema_ = get_schema(onnx_node.op_type, version, onnx_node.domain)
|
|
@@ -705,6 +746,10 @@ class OpFunctionContextDependant(OpFunction):
|
|
|
705
746
|
ttype = TensorProto.FLOAT8E5M2FNUZ # type: ignore[attr-defined]
|
|
706
747
|
elif t.dtype == bfloat16:
|
|
707
748
|
ttype = TensorProto.BLOFAT16 # type: ignore[attr-defined]
|
|
749
|
+
elif t.dtype == uint4:
|
|
750
|
+
ttype = TensorProto.UINT4 # type: ignore[attr-defined]
|
|
751
|
+
elif t.dtype == int4:
|
|
752
|
+
ttype = TensorProto.INT4 # type: ignore[attr-defined]
|
|
708
753
|
else:
|
|
709
754
|
raise e
|
|
710
755
|
types.append(make_tensor_type_proto(ttype, t.shape))
|