amct量化onnx报错
收藏回复举报
amct量化onnx报错
t('forum.solved') 已解决
新人帖
发表于2025-06-27 18:04:49
0 查看

一、问题现象:
在使用示例工程进行onnx模型量化的时候会报如下错误:

Traceback (most recent call last):
  File "/media/yin/data/ascend_work/samples/python/level1_single_api/9_amct/amct_onnx/calibration/./src/resnet-101_calibration.py", line 162, in <module>
    main()
  File "/media/yin/data/ascend_work/samples/python/level1_single_api/9_amct/amct_onnx/calibration/./src/resnet-101_calibration.py", line 147, in main
    onnx_forward(modified_model, 32, batch_num)
  File "/media/yin/data/ascend_work/samples/python/level1_single_api/9_amct/amct_onnx/calibration/./src/resnet-101_calibration.py", line 101, in onnx_forward
    ort_session = ort.InferenceSession(onnx_model, amct.AMCT_SO)
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 472, in __init__
    self._create_inference_session(providers, provider_options, disabled_optimizers)
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 550, in _create_inference_session
    sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model)
onnxruntime.capi.onnxruntime_pybind11_state.InvalidGraph: [ONNXRuntimeError] : 10 : INVALID_GRAPH : Load model from /media/yin/data/ascend_work/samples/python/level1_single_api/9_amct/amct_onnx/calibration/outputs/calibration/tmp/modified_model.onnx failed:This is an invalid model. In Node, ("Gemm_353_ifmr_op", IFMR, "amct.customop", -1) : ("Gemm_353_ifmr_op_act_Flatten_output": tensor(float),) -> ("Gemm_353_ifmr_op_output",) , Error No opset import for domain 'amct.customop'

当我屏蔽掉amct.quantize_mode之后的onnx_forward之后,会在amct.save_model报如下错误:

Traceback (most recent call last):
  File "/media/yin/data/ascend_work/samples/python/level1_single_api/9_amct/amct_onnx/calibration/./src/resnet-101_calibration.py", line 162, in <module>
    main()
  File "/media/yin/data/ascend_work/samples/python/level1_single_api/9_amct/amct_onnx/calibration/./src/resnet-101_calibration.py", line 152, in main
    amct.save_model(modified_model, scale_offset_record_file, result_path)
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/amct_onnx/common/utils/check_params.py", line 43, in wrapper
    return func(*args, **kwargs)
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/amct_onnx/quantize_tool.py", line 286, in save_model
    records, status = record_parser.parse_wrap()
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/amct_onnx/parser/parse_record_file.py", line 127, in parse_wrap
    records, _ = self.parse(enable_shift_n)
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/amct_onnx/common/utils/parse_record_file.py", line 148, in parse
    record_file_parsed_result = self.parse_quant(enable_shift_n)
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/amct_onnx/common/utils/parse_record_file.py", line 204, in parse_quant
    layer_params = recorder.parse_quant_value(enable_shift_n)
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/amct_onnx/common/utils/parse_record_file.py", line 464, in parse_quant_value
    layer_params[DATA_SCALE] = self.get_act_quant_factor('scale_d', np.float32)
  File "/media/yin/data/anaconda3/envs/amct/lib/python3.10/site-packages/amct_onnx/common/utils/parse_record_file.py", line 592, in get_act_quant_factor
    raise RuntimeError(
RuntimeError: cannot find scale_d of layer Conv_0 in record_file, please check data calibration process!

二、软件版本:
-- amct 版本 : Ascend-cann-amct_8.1.RC1_linux-x86_64
--Python onnx : Version: 1.18.0
--Python onnxruntime : Version: 1.22.0
--Python amct_onnx : Version: 0.22.1
--Python : 3.10.18
--操作系统版本: ubuntu24.04

三、测试步骤:
按照官方示例操作https://www.hiascend.com/document/detail/zh/canncommercial/81RC1/devaids/devtools/amct/atlasamct_16_0002.html#ZH-CN_TOPIC_0000002263918497__section3214915118

我要发帖子