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
|
@@ -14,12 +14,14 @@ from onnx import TensorProto, helper
|
|
|
14
14
|
# to the most recent version and runs checker and shape inference on the final upgraded model.
|
|
15
15
|
####################################################################################
|
|
16
16
|
|
|
17
|
-
tested_ops = []
|
|
18
|
-
|
|
19
17
|
|
|
20
18
|
class TestAutomaticUpgrade(automatic_conversion_test_base.TestAutomaticConversion):
|
|
19
|
+
@classmethod
|
|
20
|
+
def setUpClass(cls):
|
|
21
|
+
cls.tested_ops = []
|
|
22
|
+
|
|
21
23
|
def _test_op_upgrade(self, op, *args, **kwargs):
|
|
22
|
-
tested_ops.append(op)
|
|
24
|
+
self.tested_ops.append(op)
|
|
23
25
|
self._test_op_conversion(op, *args, **kwargs, is_upgrade=True)
|
|
24
26
|
|
|
25
27
|
def test_Abs(self) -> None:
|
|
@@ -1739,9 +1741,10 @@ class TestAutomaticUpgrade(automatic_conversion_test_base.TestAutomaticConversio
|
|
|
1739
1741
|
)
|
|
1740
1742
|
|
|
1741
1743
|
def test_ops_tested(self) -> None:
|
|
1744
|
+
# NOTE: This test is order dependent and needs to run last in this class
|
|
1742
1745
|
all_schemas = onnx.defs.get_all_schemas()
|
|
1743
|
-
all_op_names =
|
|
1744
|
-
excluded_ops =
|
|
1746
|
+
all_op_names = {schema.name for schema in all_schemas if schema.domain == ""}
|
|
1747
|
+
excluded_ops = {
|
|
1745
1748
|
# Sequence-based and Optional-based ops disabled because
|
|
1746
1749
|
# the version converter doesn't play nicely with sequences
|
|
1747
1750
|
"ConcatFromSequence",
|
|
@@ -1757,12 +1760,11 @@ class TestAutomaticUpgrade(automatic_conversion_test_base.TestAutomaticConversio
|
|
|
1757
1760
|
"OptionalGetElement",
|
|
1758
1761
|
"OptionalHasElement",
|
|
1759
1762
|
"StringSplit",
|
|
1760
|
-
|
|
1761
|
-
|
|
1763
|
+
}
|
|
1764
|
+
expected_tested_ops = all_op_names - excluded_ops
|
|
1762
1765
|
|
|
1763
|
-
untested_ops =
|
|
1764
|
-
|
|
1765
|
-
assert len(untested_ops) == 0
|
|
1766
|
+
untested_ops = expected_tested_ops - set(self.tested_ops)
|
|
1767
|
+
self.assertEqual(untested_ops, set())
|
|
1766
1768
|
|
|
1767
1769
|
|
|
1768
1770
|
if __name__ == "__main__":
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
|
|
5
|
+
import contextlib
|
|
5
6
|
import struct
|
|
6
7
|
import unittest
|
|
8
|
+
from typing import Optional, Tuple
|
|
7
9
|
|
|
8
10
|
import numpy as np
|
|
11
|
+
import parameterized
|
|
9
12
|
|
|
10
13
|
import onnx.version_converter
|
|
11
14
|
from onnx import (
|
|
@@ -1984,6 +1987,169 @@ class TestVersionConverter(unittest.TestCase):
|
|
|
1984
1987
|
assert converted_model.graph.node[3].op_type == "Reshape"
|
|
1985
1988
|
assert converted_model.opset_import[0].version == 13
|
|
1986
1989
|
|
|
1990
|
+
@parameterized.parameterized.expand(
|
|
1991
|
+
[
|
|
1992
|
+
("per_tensor", (16, 3), (1,), None, None, None, TensorProto.INT8, True),
|
|
1993
|
+
(
|
|
1994
|
+
"per_axis_none_block_shape",
|
|
1995
|
+
(16, 3),
|
|
1996
|
+
(16,),
|
|
1997
|
+
1,
|
|
1998
|
+
None,
|
|
1999
|
+
None,
|
|
2000
|
+
TensorProto.INT8,
|
|
2001
|
+
True,
|
|
2002
|
+
),
|
|
2003
|
+
(
|
|
2004
|
+
"per_axis_zero_block_shape",
|
|
2005
|
+
(16, 3),
|
|
2006
|
+
(16,),
|
|
2007
|
+
1,
|
|
2008
|
+
0,
|
|
2009
|
+
None,
|
|
2010
|
+
TensorProto.INT8,
|
|
2011
|
+
True,
|
|
2012
|
+
),
|
|
2013
|
+
(
|
|
2014
|
+
"per_tensor_positive_block_shape",
|
|
2015
|
+
(16, 3),
|
|
2016
|
+
(1,),
|
|
2017
|
+
1,
|
|
2018
|
+
2,
|
|
2019
|
+
None,
|
|
2020
|
+
TensorProto.INT8,
|
|
2021
|
+
False,
|
|
2022
|
+
),
|
|
2023
|
+
(
|
|
2024
|
+
"per_axis_positive_block_shape",
|
|
2025
|
+
(16, 3),
|
|
2026
|
+
(16,),
|
|
2027
|
+
1,
|
|
2028
|
+
2,
|
|
2029
|
+
None,
|
|
2030
|
+
TensorProto.INT8,
|
|
2031
|
+
False,
|
|
2032
|
+
),
|
|
2033
|
+
("blocked_2d", (16, 3), (4, 3), 0, 4, None, TensorProto.INT8, False),
|
|
2034
|
+
("blocked_3d", (4, 3, 32), (4, 3, 8), 2, 4, None, TensorProto.INT8, False),
|
|
2035
|
+
(
|
|
2036
|
+
"per_axis_output_dtype",
|
|
2037
|
+
(16, 3),
|
|
2038
|
+
(16,),
|
|
2039
|
+
1,
|
|
2040
|
+
None,
|
|
2041
|
+
TensorProto.FLOAT8E4M3FN,
|
|
2042
|
+
None,
|
|
2043
|
+
False,
|
|
2044
|
+
),
|
|
2045
|
+
(
|
|
2046
|
+
"per_axis_unsupported_type",
|
|
2047
|
+
(16, 3),
|
|
2048
|
+
(16,),
|
|
2049
|
+
1,
|
|
2050
|
+
None,
|
|
2051
|
+
None,
|
|
2052
|
+
TensorProto.UINT16,
|
|
2053
|
+
False,
|
|
2054
|
+
),
|
|
2055
|
+
]
|
|
2056
|
+
)
|
|
2057
|
+
def test_quantize_21_20(
|
|
2058
|
+
self,
|
|
2059
|
+
_: str,
|
|
2060
|
+
x_shape: Tuple[int, ...],
|
|
2061
|
+
scale_shape: Tuple[int, ...],
|
|
2062
|
+
axis: int,
|
|
2063
|
+
block_size: int,
|
|
2064
|
+
output_dtype: Optional[int],
|
|
2065
|
+
zero_point_dtype: Optional[int],
|
|
2066
|
+
compatible: bool,
|
|
2067
|
+
) -> None:
|
|
2068
|
+
def test(
|
|
2069
|
+
input_shape, scale_shape, axis, block_size, output_dtype, zero_point_dtype
|
|
2070
|
+
) -> None:
|
|
2071
|
+
nodes = [
|
|
2072
|
+
helper.make_node(
|
|
2073
|
+
"QuantizeLinear",
|
|
2074
|
+
["X", "S"],
|
|
2075
|
+
["Y"],
|
|
2076
|
+
axis=axis,
|
|
2077
|
+
block_size=block_size,
|
|
2078
|
+
output_dtype=output_dtype,
|
|
2079
|
+
)
|
|
2080
|
+
]
|
|
2081
|
+
inputs = [
|
|
2082
|
+
helper.make_tensor_value_info("X", TensorProto.FLOAT, input_shape),
|
|
2083
|
+
helper.make_tensor_value_info("S", TensorProto.FLOAT, scale_shape),
|
|
2084
|
+
]
|
|
2085
|
+
if zero_point_dtype:
|
|
2086
|
+
inputs.append(
|
|
2087
|
+
helper.make_tensor_value_info("ZP", zero_point_dtype, scale_shape)
|
|
2088
|
+
)
|
|
2089
|
+
nodes[0].input.append("ZP")
|
|
2090
|
+
output_type_ = output_dtype or zero_point_dtype
|
|
2091
|
+
graph = helper.make_graph(
|
|
2092
|
+
nodes,
|
|
2093
|
+
"test",
|
|
2094
|
+
inputs,
|
|
2095
|
+
[helper.make_tensor_value_info("Y", output_type_, input_shape)],
|
|
2096
|
+
)
|
|
2097
|
+
_ = self._converted(graph, helper.make_operatorsetid("", 21), 20)
|
|
2098
|
+
|
|
2099
|
+
context_manager = (
|
|
2100
|
+
contextlib.nullcontext() if compatible else self.assertRaises(RuntimeError)
|
|
2101
|
+
)
|
|
2102
|
+
with context_manager: # type: ignore[attr-defined]
|
|
2103
|
+
test(x_shape, scale_shape, axis, block_size, output_dtype, zero_point_dtype)
|
|
2104
|
+
|
|
2105
|
+
@parameterized.parameterized.expand(
|
|
2106
|
+
[
|
|
2107
|
+
("per_tensor", (16, 3), (1,), None, None, True),
|
|
2108
|
+
("per_axis_none_block_shape", (16, 3), (16,), 1, None, True),
|
|
2109
|
+
("per_axis_zero_block_shape", (16, 3), (16,), 1, 0, True),
|
|
2110
|
+
("per_tensor_positive_block_shape", (16, 3), (1,), 1, 2, False),
|
|
2111
|
+
("per_axis_positive_block_shape", (16, 3), (16,), 1, 2, False),
|
|
2112
|
+
("blocked_2d", (16, 3), (4, 3), 0, 4, False),
|
|
2113
|
+
("blocked_3d", (4, 3, 32), (4, 3, 8), 2, 4, False),
|
|
2114
|
+
]
|
|
2115
|
+
)
|
|
2116
|
+
def test_dequantize_21_20(
|
|
2117
|
+
self,
|
|
2118
|
+
_: str,
|
|
2119
|
+
y_shape: Tuple[int, ...],
|
|
2120
|
+
scale_shape: Tuple[int, ...],
|
|
2121
|
+
axis: int,
|
|
2122
|
+
block_size: int,
|
|
2123
|
+
compatible: bool,
|
|
2124
|
+
) -> None:
|
|
2125
|
+
def test(input_shape, scale_shape, axis, block_size) -> None:
|
|
2126
|
+
nodes = [
|
|
2127
|
+
helper.make_node(
|
|
2128
|
+
"DequantizeLinear",
|
|
2129
|
+
["X", "S", "ZP"],
|
|
2130
|
+
["Y"],
|
|
2131
|
+
axis=axis,
|
|
2132
|
+
block_size=block_size,
|
|
2133
|
+
)
|
|
2134
|
+
]
|
|
2135
|
+
graph = helper.make_graph(
|
|
2136
|
+
nodes,
|
|
2137
|
+
"test",
|
|
2138
|
+
[
|
|
2139
|
+
helper.make_tensor_value_info("X", TensorProto.INT8, input_shape),
|
|
2140
|
+
helper.make_tensor_value_info("S", TensorProto.FLOAT, scale_shape),
|
|
2141
|
+
helper.make_tensor_value_info("ZP", TensorProto.INT8, scale_shape),
|
|
2142
|
+
],
|
|
2143
|
+
[helper.make_tensor_value_info("Y", TensorProto.FLOAT, input_shape)],
|
|
2144
|
+
)
|
|
2145
|
+
_ = self._converted(graph, helper.make_operatorsetid("", 21), 20)
|
|
2146
|
+
|
|
2147
|
+
context_manager = (
|
|
2148
|
+
contextlib.nullcontext() if compatible else self.assertRaises(RuntimeError)
|
|
2149
|
+
)
|
|
2150
|
+
with context_manager: # type: ignore[attr-defined]
|
|
2151
|
+
test(y_shape, scale_shape, axis, block_size)
|
|
2152
|
+
|
|
1987
2153
|
|
|
1988
2154
|
if __name__ == "__main__":
|
|
1989
2155
|
unittest.main()
|
onnx/tools/replace_constants.py
CHANGED
|
@@ -31,10 +31,7 @@ from onnx.numpy_helper import from_array
|
|
|
31
31
|
def _replace_constant(
|
|
32
32
|
node: NodeProto, threshold: int, value_constant_of_shape: float
|
|
33
33
|
) -> List[NodeProto]:
|
|
34
|
-
"""
|
|
35
|
-
Replaces a Constant node with a large tensor (with more than threshold elements)
|
|
36
|
-
by a sequence of nodes that produces a dummy constant of same shape as original tensor.
|
|
37
|
-
"""
|
|
34
|
+
"""Replaces a Constant node with a large tensor (with more than threshold elements) by a sequence of nodes that produces a dummy constant of same shape as original tensor."""
|
|
38
35
|
if node.op_type != "Constant":
|
|
39
36
|
raise TypeError(f"Node type must be 'Constant' not {node.op_type!r}.")
|
|
40
37
|
for att in node.attribute:
|
|
@@ -74,12 +71,11 @@ def _replace_constant(
|
|
|
74
71
|
def _replace_constant_of_shape_with_range(
|
|
75
72
|
onx: Union[GraphProto, FunctionProto]
|
|
76
73
|
) -> Union[GraphProto, FunctionProto]:
|
|
77
|
-
"""
|
|
78
|
-
|
|
74
|
+
"""Replaces all *ConstantOfShape* by node *Range* to avoid constant tensors.
|
|
75
|
+
|
|
79
76
|
The function is not recursive. The recursivity is done by
|
|
80
77
|
*replace_initializer_by_constant_of_shape*.
|
|
81
78
|
"""
|
|
82
|
-
|
|
83
79
|
if isinstance(onx, GraphProto):
|
|
84
80
|
nodes = list(onx.node)
|
|
85
81
|
elif isinstance(onx, FunctionProto):
|
|
@@ -163,11 +159,7 @@ def _replace_constant_of_shape_with_range(
|
|
|
163
159
|
def _replace_constant_of_shape_value(
|
|
164
160
|
onx: Union[GraphProto, FunctionProto], value_constant_of_shape: float
|
|
165
161
|
) -> Union[GraphProto, FunctionProto]:
|
|
166
|
-
"""
|
|
167
|
-
Replaces all fill value of all nodes *ConstantOfShape*.
|
|
168
|
-
*replace_initializer_by_constant_of_shape*.
|
|
169
|
-
"""
|
|
170
|
-
|
|
162
|
+
"""Replaces all fill value of all nodes *ConstantOfShape*."""
|
|
171
163
|
if isinstance(onx, GraphProto):
|
|
172
164
|
nodes = list(onx.node)
|
|
173
165
|
elif isinstance(onx, FunctionProto):
|
|
@@ -226,20 +218,25 @@ def replace_initializer_by_constant_of_shape( # noqa: PLR0911
|
|
|
226
218
|
use_range: bool = False,
|
|
227
219
|
value_constant_of_shape: float = 0.5,
|
|
228
220
|
):
|
|
229
|
-
"""
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
221
|
+
"""Replace initializers or constant node by nodes *ConstantOfShape* to reduce the size.
|
|
222
|
+
|
|
223
|
+
This reduce the cost to write a unit test about a specific graph structure.
|
|
224
|
+
|
|
225
|
+
Args:
|
|
226
|
+
onx: ModelProto
|
|
227
|
+
threshold: every initializer under this threshold is not
|
|
228
|
+
impacted
|
|
229
|
+
ir_version: initializer must be specified as input for
|
|
230
|
+
`ir_version <= 3`, this must be specified if onx is
|
|
231
|
+
:class:`FunctionProto` or :class:`GraphProto`
|
|
232
|
+
use_range: if uses operator *Range* instead of *ConstantOfShape*
|
|
233
|
+
to avoid constant tensors
|
|
234
|
+
value_constant_of_shape: value to use as a value for all nodes
|
|
235
|
+
*ConstantOfShape*, a high value may produce nan or inf
|
|
236
|
+
predictions
|
|
237
|
+
|
|
238
|
+
Returns:
|
|
239
|
+
onx, modified ModelProto
|
|
243
240
|
|
|
244
241
|
The function is designed so that the function can be reapplied on a modified model
|
|
245
242
|
and either replace *ConstantOfShape* with *Range* operators, either replace the fill value
|
onnx/tools/update_model_dims.py
CHANGED
|
@@ -13,8 +13,7 @@ def update_inputs_outputs_dims(
|
|
|
13
13
|
input_dims: Dict[str, List[Any]],
|
|
14
14
|
output_dims: Dict[str, List[Any]],
|
|
15
15
|
) -> ModelProto:
|
|
16
|
-
"""
|
|
17
|
-
This function updates the dimension sizes of the model's inputs and outputs to the values
|
|
16
|
+
"""This function updates the dimension sizes of the model's inputs and outputs to the values
|
|
18
17
|
provided in input_dims and output_dims. if the dim value provided is negative, a unique dim_param
|
|
19
18
|
will be set for that dimension.
|
|
20
19
|
|
onnx/version.py
CHANGED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// Copyright (c) ONNX Project Contributors
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Adapter for GroupNormalization in default domain from version 20 to 21
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <memory>
|
|
12
|
+
|
|
13
|
+
#include "onnx/version_converter/adapters/adapter.h"
|
|
14
|
+
|
|
15
|
+
namespace ONNX_NAMESPACE {
|
|
16
|
+
namespace version_conversion {
|
|
17
|
+
|
|
18
|
+
class GroupNormalization_20_21 final : public Adapter {
|
|
19
|
+
public:
|
|
20
|
+
explicit GroupNormalization_20_21() : Adapter("GroupNormalization", OpSetID(20), OpSetID(21)) {}
|
|
21
|
+
|
|
22
|
+
void transform_input(
|
|
23
|
+
std::shared_ptr<Graph> graph,
|
|
24
|
+
Node* node,
|
|
25
|
+
int64_t input_id,
|
|
26
|
+
Value* reshape0_shape,
|
|
27
|
+
Value* reshape1_shape,
|
|
28
|
+
Value* expand_shape) const {
|
|
29
|
+
Node* reshape0 = graph->create(kReshape);
|
|
30
|
+
reshape0->addInput(node->inputs()[input_id]);
|
|
31
|
+
reshape0->addInput(reshape0_shape);
|
|
32
|
+
reshape0->insertBefore(node);
|
|
33
|
+
|
|
34
|
+
Node* expand = graph->create(kExpand);
|
|
35
|
+
expand->addInput(reshape0->output());
|
|
36
|
+
expand->addInput(expand_shape);
|
|
37
|
+
expand->insertBefore(node);
|
|
38
|
+
|
|
39
|
+
Node* reshape1 = graph->create(kReshape);
|
|
40
|
+
reshape1->addInput(expand->output());
|
|
41
|
+
reshape1->addInput(reshape1_shape);
|
|
42
|
+
reshape1->insertBefore(node);
|
|
43
|
+
|
|
44
|
+
node->replaceInput(input_id, reshape1->output());
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
void adapt_group_normalization_20_21(std::shared_ptr<Graph> graph, Node* node) const {
|
|
48
|
+
// Perform following sequence of ops on scale/bias, effect is similar to numpy.repeat()
|
|
49
|
+
//
|
|
50
|
+
// Shape<start=1,end=2>(input0) -- Div(Shape_out (C), num_groups)
|
|
51
|
+
// |
|
|
52
|
+
// Reshape(input1/2, [-1, 1]) ----------- Expand(Reshape_out, [1, Div_out]) -- Reshape(Expand_out, [-1])
|
|
53
|
+
//
|
|
54
|
+
// The helper function transform_input() implements the bottom row of the diagram
|
|
55
|
+
|
|
56
|
+
// Get number of channels: C
|
|
57
|
+
Symbol kShape("Shape");
|
|
58
|
+
Node* C = graph->create(kShape);
|
|
59
|
+
C->i_(kstart, 1);
|
|
60
|
+
C->i_(kend, 2);
|
|
61
|
+
C->addInput(node->inputs()[0]);
|
|
62
|
+
C->insertBefore(node);
|
|
63
|
+
|
|
64
|
+
// Get number of channels per group
|
|
65
|
+
Tensor tensor_num_groups;
|
|
66
|
+
tensor_num_groups.elem_type() = TensorProto_DataType_INT64;
|
|
67
|
+
int64_t num_groups = node->i(knum_groups);
|
|
68
|
+
tensor_num_groups.sizes() = {1};
|
|
69
|
+
tensor_num_groups.int64s() = {num_groups};
|
|
70
|
+
Node* constant_num_groups = graph->create(kConstant);
|
|
71
|
+
constant_num_groups->t_(kvalue, tensor_num_groups);
|
|
72
|
+
constant_num_groups->insertBefore(node);
|
|
73
|
+
|
|
74
|
+
Node* div = graph->create(kDiv);
|
|
75
|
+
div->addInput(C->output());
|
|
76
|
+
div->addInput(constant_num_groups->output());
|
|
77
|
+
div->insertBefore(node);
|
|
78
|
+
|
|
79
|
+
// Get Expand shape: [1, Div_out]
|
|
80
|
+
Tensor tensor_one;
|
|
81
|
+
tensor_one.elem_type() = TensorProto_DataType_INT64;
|
|
82
|
+
tensor_one.sizes() = {1};
|
|
83
|
+
tensor_one.int64s() = {1};
|
|
84
|
+
Node* constant_one = graph->create(kConstant);
|
|
85
|
+
constant_one->t_(kvalue, tensor_one);
|
|
86
|
+
constant_one->insertBefore(node);
|
|
87
|
+
Node* concat = graph->create(kConcat);
|
|
88
|
+
concat->i_(kaxis, 0);
|
|
89
|
+
concat->addInput(constant_one->output());
|
|
90
|
+
concat->addInput(div->output());
|
|
91
|
+
concat->insertBefore(node);
|
|
92
|
+
|
|
93
|
+
// Get shape of first reshape: [-1, 1]
|
|
94
|
+
Tensor tensor_reshape0_shape;
|
|
95
|
+
tensor_reshape0_shape.elem_type() = TensorProto_DataType_INT64;
|
|
96
|
+
tensor_reshape0_shape.sizes() = {2};
|
|
97
|
+
tensor_reshape0_shape.int64s() = {-1, 1};
|
|
98
|
+
Node* constant_reshape0_shape = graph->create(kConstant);
|
|
99
|
+
constant_reshape0_shape->t_(kvalue, tensor_reshape0_shape);
|
|
100
|
+
constant_reshape0_shape->insertBefore(node);
|
|
101
|
+
|
|
102
|
+
// Get shape of last reshape: [-1]
|
|
103
|
+
Tensor tensor_reshape1_shape;
|
|
104
|
+
tensor_reshape1_shape.elem_type() = TensorProto_DataType_INT64;
|
|
105
|
+
tensor_reshape1_shape.sizes() = {1};
|
|
106
|
+
tensor_reshape1_shape.int64s() = {-1};
|
|
107
|
+
Node* constant_reshape1_shape = graph->create(kConstant);
|
|
108
|
+
constant_reshape1_shape->t_(kvalue, tensor_reshape1_shape);
|
|
109
|
+
constant_reshape1_shape->insertBefore(node);
|
|
110
|
+
|
|
111
|
+
// transform scale and bias
|
|
112
|
+
transform_input(
|
|
113
|
+
graph, node, 1, constant_reshape0_shape->output(), constant_reshape1_shape->output(), concat->output());
|
|
114
|
+
transform_input(
|
|
115
|
+
graph, node, 2, constant_reshape0_shape->output(), constant_reshape1_shape->output(), concat->output());
|
|
116
|
+
|
|
117
|
+
// Set stash_type
|
|
118
|
+
node->i_(kstash_type, node->inputs()[0]->elemType());
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
Node* adapt(std::shared_ptr<Graph> graph, Node* node) const override {
|
|
122
|
+
adapt_group_normalization_20_21(graph, node);
|
|
123
|
+
return node;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
} // namespace version_conversion
|
|
128
|
+
} // namespace ONNX_NAMESPACE
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Copyright (c) ONNX Project Contributors
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Adapter for Cast in default domain from version 9 to 8
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <memory>
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
#include "onnx/version_converter/adapters/type_restriction.h"
|
|
15
|
+
|
|
16
|
+
namespace ONNX_NAMESPACE {
|
|
17
|
+
namespace version_conversion {
|
|
18
|
+
|
|
19
|
+
static const std::vector<TensorProto_DataType> q_dq_20_unallowed_types = {
|
|
20
|
+
TensorProto_DataType_UINT16,
|
|
21
|
+
TensorProto_DataType_INT16,
|
|
22
|
+
TensorProto_DataType_UINT4,
|
|
23
|
+
TensorProto_DataType_INT4};
|
|
24
|
+
|
|
25
|
+
class QuantizeLinear_21_20 final : public TypeRestriction {
|
|
26
|
+
public:
|
|
27
|
+
explicit QuantizeLinear_21_20()
|
|
28
|
+
: TypeRestriction("QuantizeLinear", OpSetID(21), OpSetID(20), q_dq_20_unallowed_types) {}
|
|
29
|
+
|
|
30
|
+
void adapt_quantize_linear_21_20(std::shared_ptr<Graph>, Node* node) const {
|
|
31
|
+
if (node->hasAttribute(kblock_size)) {
|
|
32
|
+
if ((node->i(kblock_size) != 0)) {
|
|
33
|
+
ONNX_ASSERTM(false, "Blocked quantization is not supported for Opset Version %d.", target_version().version())
|
|
34
|
+
}
|
|
35
|
+
node->removeAttribute(kblock_size);
|
|
36
|
+
}
|
|
37
|
+
if (node->hasAttribute(koutput_dtype)) {
|
|
38
|
+
if (node->i(koutput_dtype) != TensorProto_DataType_UINT8 && node->inputs().size() < 3) {
|
|
39
|
+
ONNX_ASSERTM(
|
|
40
|
+
false,
|
|
41
|
+
"Attribute output_dtype is not supported for Opset Version %d, supply a zero-point tensor instead",
|
|
42
|
+
target_version().version())
|
|
43
|
+
}
|
|
44
|
+
node->removeAttribute(koutput_dtype);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
Node* adapt(std::shared_ptr<Graph> graph, Node* node) const override {
|
|
49
|
+
adapt_type_restriction(graph, node);
|
|
50
|
+
adapt_quantize_linear_21_20(graph, node);
|
|
51
|
+
return node;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
class DequantizeLinear_21_20 final : public TypeRestriction {
|
|
56
|
+
public:
|
|
57
|
+
explicit DequantizeLinear_21_20()
|
|
58
|
+
: TypeRestriction("DequantizeLinear", OpSetID(21), OpSetID(20), q_dq_20_unallowed_types) {}
|
|
59
|
+
|
|
60
|
+
void adapt_dequantize_linear_21_20(std::shared_ptr<Graph>, Node* node) const {
|
|
61
|
+
if (node->hasAttribute(kblock_size)) {
|
|
62
|
+
if ((node->i(kblock_size) != 0)) {
|
|
63
|
+
ONNX_ASSERTM(false, "Blocked quantization is not supported for Opset Version %d.", target_version().version())
|
|
64
|
+
}
|
|
65
|
+
node->removeAttribute(kblock_size);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
Node* adapt(std::shared_ptr<Graph> graph, Node* node) const override {
|
|
70
|
+
adapt_type_restriction(graph, node);
|
|
71
|
+
adapt_dequantize_linear_21_20(graph, node);
|
|
72
|
+
return node;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
} // namespace version_conversion
|
|
77
|
+
} // namespace ONNX_NAMESPACE
|
onnx/version_converter/convert.h
CHANGED
|
@@ -32,9 +32,11 @@
|
|
|
32
32
|
#include "onnx/version_converter/adapters/gemm_6_7.h"
|
|
33
33
|
#include "onnx/version_converter/adapters/gemm_7_6.h"
|
|
34
34
|
#include "onnx/version_converter/adapters/gridsample_19_20.h"
|
|
35
|
+
#include "onnx/version_converter/adapters/group_normalization_20_21.h"
|
|
35
36
|
#include "onnx/version_converter/adapters/maxpool_8_7.h"
|
|
36
37
|
#include "onnx/version_converter/adapters/no_previous_version.h"
|
|
37
38
|
#include "onnx/version_converter/adapters/pad_10_11.h"
|
|
39
|
+
#include "onnx/version_converter/adapters/q_dq_21_20.h"
|
|
38
40
|
#include "onnx/version_converter/adapters/reshape_4_5.h"
|
|
39
41
|
#include "onnx/version_converter/adapters/reshape_5_4.h"
|
|
40
42
|
#include "onnx/version_converter/adapters/resize_10_11.h"
|
|
@@ -591,7 +593,7 @@ class DefaultVersionConverter : public BaseVersionConverter {
|
|
|
591
593
|
TensorProto_DataType_FLOAT8E4M3FNUZ,
|
|
592
594
|
TensorProto_DataType_FLOAT8E5M2,
|
|
593
595
|
TensorProto_DataType_FLOAT8E5M2FNUZ};
|
|
594
|
-
registerAdapter(std::make_unique<TypeRestriction>("IsNaN", OpSetID(
|
|
596
|
+
registerAdapter(std::make_unique<TypeRestriction>("IsNaN", OpSetID(20), OpSetID(19), is_nan_13_unallowed_types));
|
|
595
597
|
const std::vector<TensorProto_DataType> is_inf_10_unallowed_types = {
|
|
596
598
|
TensorProto_DataType_FLOAT16,
|
|
597
599
|
TensorProto_DataType_BFLOAT16,
|
|
@@ -599,13 +601,76 @@ class DefaultVersionConverter : public BaseVersionConverter {
|
|
|
599
601
|
TensorProto_DataType_FLOAT8E4M3FNUZ,
|
|
600
602
|
TensorProto_DataType_FLOAT8E5M2,
|
|
601
603
|
TensorProto_DataType_FLOAT8E5M2FNUZ};
|
|
602
|
-
registerAdapter(std::make_unique<TypeRestriction>("IsInf", OpSetID(
|
|
604
|
+
registerAdapter(std::make_unique<TypeRestriction>("IsInf", OpSetID(20), OpSetID(19), is_inf_10_unallowed_types));
|
|
603
605
|
registerAdapter(std::make_unique<AxisInputToAttribute>("DFT", OpSetID(20), OpSetID(19), 2, -2));
|
|
604
606
|
const std::vector<TensorProto_DataType> reduce_min_max_18_unallowed_types = {TensorProto_DataType_BOOL};
|
|
605
607
|
registerAdapter(
|
|
606
608
|
std::make_unique<TypeRestriction>("ReduceMax", OpSetID(20), OpSetID(19), reduce_min_max_18_unallowed_types));
|
|
607
609
|
registerAdapter(
|
|
608
610
|
std::make_unique<TypeRestriction>("ReduceMin", OpSetID(20), OpSetID(19), reduce_min_max_18_unallowed_types));
|
|
611
|
+
|
|
612
|
+
/******** 20 -> 21 ********/
|
|
613
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Cast", OpSetID(20), OpSetID(21)));
|
|
614
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("CastLike", OpSetID(20), OpSetID(21)));
|
|
615
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Constant", OpSetID(20), OpSetID(21)));
|
|
616
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("ConstantOfShape", OpSetID(20), OpSetID(21)));
|
|
617
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("DequantizeLinear", OpSetID(20), OpSetID(21)));
|
|
618
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Flatten", OpSetID(20), OpSetID(21)));
|
|
619
|
+
registerAdapter(std::make_unique<GroupNormalization_20_21>());
|
|
620
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Identity", OpSetID(20), OpSetID(21)));
|
|
621
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("If", OpSetID(20), OpSetID(21)));
|
|
622
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Loop", OpSetID(20), OpSetID(21)));
|
|
623
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Pad", OpSetID(20), OpSetID(21)));
|
|
624
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("QLinearMatMul", OpSetID(20), OpSetID(21)));
|
|
625
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("QuantizeLinear", OpSetID(20), OpSetID(21)));
|
|
626
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Reshape", OpSetID(20), OpSetID(21)));
|
|
627
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Scan", OpSetID(20), OpSetID(21)));
|
|
628
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Shape", OpSetID(20), OpSetID(21)));
|
|
629
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Size", OpSetID(20), OpSetID(21)));
|
|
630
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Squeeze", OpSetID(20), OpSetID(21)));
|
|
631
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Transpose", OpSetID(20), OpSetID(21)));
|
|
632
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("Unsqueeze", OpSetID(20), OpSetID(21)));
|
|
633
|
+
registerAdapter(std::make_unique<CompatibleAdapter>("GroupNormalization", OpSetID(20), OpSetID(21)));
|
|
634
|
+
|
|
635
|
+
/******** 21 -> 20 ********/
|
|
636
|
+
const std::vector<TensorProto_DataType> q_dq_20_unallowed_types = {
|
|
637
|
+
TensorProto_DataType_UINT16, TensorProto_DataType_INT16, TensorProto_DataType_UINT4, TensorProto_DataType_INT4};
|
|
638
|
+
const std::vector<TensorProto_DataType> q_dqmm_20_unallowed_types = {
|
|
639
|
+
TensorProto_DataType_BFLOAT16,
|
|
640
|
+
TensorProto_DataType_FLOAT16,
|
|
641
|
+
TensorProto_DataType_UINT4,
|
|
642
|
+
TensorProto_DataType_INT4};
|
|
643
|
+
const std::vector<TensorProto_DataType> ir10_types_not_in_ir9 = {
|
|
644
|
+
TensorProto_DataType_UINT4, TensorProto_DataType_INT4};
|
|
645
|
+
const std::vector<TensorProto_DataType> ir10_types_not_in_ir4 = {
|
|
646
|
+
TensorProto_DataType_FLOAT8E4M3FN,
|
|
647
|
+
TensorProto_DataType_FLOAT8E4M3FNUZ,
|
|
648
|
+
TensorProto_DataType_FLOAT8E5M2,
|
|
649
|
+
TensorProto_DataType_FLOAT8E5M2FNUZ,
|
|
650
|
+
TensorProto_DataType_UINT4,
|
|
651
|
+
TensorProto_DataType_INT4};
|
|
652
|
+
|
|
653
|
+
registerAdapter(std::make_unique<TypeRestriction>("Cast", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
654
|
+
registerAdapter(std::make_unique<TypeRestriction>("CastLike", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
655
|
+
registerAdapter(std::make_unique<TypeRestriction>("Constant", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
656
|
+
registerAdapter(
|
|
657
|
+
std::make_unique<TypeRestriction>("ConstantOfShape", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
658
|
+
registerAdapter(std::make_unique<DequantizeLinear_21_20>());
|
|
659
|
+
registerAdapter(std::make_unique<TypeRestriction>("Flatten", OpSetID(21), OpSetID(20), ir10_types_not_in_ir4));
|
|
660
|
+
registerAdapter(std::make_unique<TypeRestriction>("Identity", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
661
|
+
registerAdapter(std::make_unique<TypeRestriction>("If", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
662
|
+
registerAdapter(std::make_unique<TypeRestriction>("Loop", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
663
|
+
registerAdapter(std::make_unique<TypeRestriction>("Pad", OpSetID(21), OpSetID(20), ir10_types_not_in_ir4));
|
|
664
|
+
registerAdapter(
|
|
665
|
+
std::make_unique<TypeRestriction>("QLinearMatMul", OpSetID(21), OpSetID(20), q_dqmm_20_unallowed_types));
|
|
666
|
+
registerAdapter(std::make_unique<QuantizeLinear_21_20>());
|
|
667
|
+
registerAdapter(std::make_unique<TypeRestriction>("Reshape", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
668
|
+
registerAdapter(std::make_unique<TypeRestriction>("Scan", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
669
|
+
registerAdapter(std::make_unique<TypeRestriction>("Shape", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
670
|
+
registerAdapter(std::make_unique<TypeRestriction>("Size", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
671
|
+
registerAdapter(std::make_unique<TypeRestriction>("Squeeze", OpSetID(21), OpSetID(20), ir10_types_not_in_ir4));
|
|
672
|
+
registerAdapter(std::make_unique<TypeRestriction>("Transpose", OpSetID(21), OpSetID(20), ir10_types_not_in_ir9));
|
|
673
|
+
registerAdapter(std::make_unique<TypeRestriction>("Unsqueeze", OpSetID(21), OpSetID(20), ir10_types_not_in_ir4));
|
|
609
674
|
}
|
|
610
675
|
|
|
611
676
|
ModelProto convert_version(const ModelProto& mp_in, const OpSetID& initial_version, const OpSetID& target_version)
|