量化时给出了敏感层信息,排除几个最敏感的层后deploy_model.onnx精度依然为0。
config.json文件内容如下:
"version":1,
"batch_num":1,
"activation_offset":true,
"joint_quant":false,
"do_fusion":true,
"skip_fusion_layers":[],
"Conv_0":{
"quant_enable":false,
"activation_quant_params":{
"max_percentile":0.999999,
"min_percentile":0.999999,
"search_range":[
0.7,
1.3
],
"search_step":0.01,
"act_algo":"ifmr"
},
"weight_quant_params":{
"wts_algo":"arq_quantize",
"channel_wise":true
}
},
当把"batch_num":1,改为"batch_num":28以后报错如下: Traceback (most recent call last):
File "/xxss928_207/scripts/yolov8_auto_calibration.py", line 652, in <module>
main()
File "/xxss928_207/scripts/yolov8_auto_calibration.py", line 637, in main
amct.accuracy_based_auto_calibration(
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/check_params.py", line 43, in wrapper
return func(*args, **kwargs)
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/accuracy_based_auto_calibration.py", line 278, in accuracy_based_auto_calibration
auto_calibration_controller.run()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/auto_calibration/accuracy_based_auto_calibration_base.py", line 278, in run
self.global_quant_accuracy = self.get_global_quant_accuracy()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/accuracy_based_auto_calibration.py", line 112, in get_global_quant_accuracy
global_quant_accuracy = self.global_calibration()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/accuracy_based_auto_calibration.py", line 147, in global_calibration
quantize_tool.save_model(
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/check_params.py", line 43, in wrapper
return func(*args, **kwargs)
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/quantize_tool.py", line 169, in save_model
records, _ = record_parser.parse()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/parse_record_file.py", line 104, in parse
self.parse_quant(enable_shift_n)
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/parse_record_file.py", line 170, in parse_quant
layer_params = recorder.parse_quant_value(enable_shift_n)
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/parse_record_file.py", line 235, in parse_quant_value
layer_params['data_scale'] = self.get_scale_d()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/parse_record_file.py", line 311, in get_scale_d
raise RuntimeError(
RuntimeError: cannot find scale_d of layer Conv_0 in record_file
用batch size1的config.json,基于自动精度量化batch size 28的模型,给出的sensitivity信息如下: 2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: ******** sensitivity_records ********
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_0 : 0.9999670439888059
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_101 : 0.9999396280693671
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_103 : 0.999948821149602
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_105 : 0.9999764520049783
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_107 : 0.9999909005170811
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_108 : 0.9999596234965378
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_110 : 0.9999558021538939
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_112 : 0.9999990495203087
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_121 : 0.999935876053182
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_13 : 0.9999376239231836
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_15 : 0.9999609247288614
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_17 : 0.9999403839478624
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_2 : 0.9998501436534641
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_20 : 0.9999684259549175
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_22 : 0.9999345541527085
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_25 : 0.9999769020018119
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_27 : 0.9998752821475199
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_31 : 0.9999598136877963
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_33 : 0.9999653573511214
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_35 : 0.9999463998084013
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_38 : 0.999982087487467
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_4 : 0.9999159932750638
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_40 : 0.9999526812481581
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_43 : 0.9999876603892325
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_45 : 0.9999173085469513
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_49 : 0.9999738221183417
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_51 : 0.9999412708178295
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_53 : 0.999950387208521
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_56 : 0.9998612515897569
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_58 : 0.9999641172038505
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_62 : 0.9999676274018379
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_67 : 0.9998977844440532
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_7 : 0.9998731000846035
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_70 : 0.9999811946494144
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_72 : 0.9999853184540759
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_75 : 0.9999802815379566
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_80 : 0.9999496808488224
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_83 : 0.9999457754088382
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_85 : 0.9999768409067382
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_88 : 0.9999663003514874
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_9 : 0.9999573168721607
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_93 : 0.9999061920699115
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_96 : 0.9999282629465169
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_98 : 0.9999412618251637
禁止量化Conv_0、Conv_2、Conv_7、Conv_67后,模型精度依然为0
model.export(batch=28,imgsz=(576,576),format="onnx",opset=12)
amct_onnx calibration --model ./yolov8s_op12.onnx --save_path ./quant/ --input_shape "input:28,3, 576,576" --data_dir "./images/" --data_types "float32"
data_dir中的bin图像是4k图像裁切后组成的batch,数量为28
atc --model=./quant_deploy_model.onnx --framework=5 --output=./quant/om_deploy_model_amct5.20_atc5.20 --soc_version="OPTG" --output_type=FP32 --insert_op_conf=./op.cfg
aipp_op {
aipp_mode : static
related_input_rank : 0
max_src_image_size : 27869184
support_rotation : false
input_format : RGB888_U8
src_image_size_w : 576
src_image_size_h: 576
cpadding_value: 0.0
crop : false
load_start_pos_w : 0
load_start_pos_h : 0
crop_size_w : 0
crop_size_h : 0
resize : false
resize_output_w : 576
resize_output_h : 576
padding : false
left_padding_size : 0
right_padding_size : 0
top_padding_size : 0
bottom_padding_size : 0
padding_value : 0
csc_switch : true
rbuv_swap_switch : true
ax_swap_switch : false
matrix_r0c0 : 256
matrix_r0c1 : 0
matrix_r0c2 : 0
matrix_r1c0 : 0
matrix_r1c1 : 0
matrix_r1c2 : 0
matrix_r2c0 : 0
matrix_r2c1 : 0
matrix_r2c2 : 0
output_bias_0 : 0
output_bias_1 : 0
output_bias_2 : 0
input_bias_0 : 0
input_bias_1 : 0
input_bias_2 : 0
mean_chn_0 : 0
min_chn_0 : 0.0
var_reci_chn_0 : 0.00392157
}
量化时给出了敏感层信息,排除几个最敏感的层后deploy_model.onnx精度依然为0。
config.json文件内容如下:
"version":1,
"batch_num":1,
"activation_offset":true,
"joint_quant":false,
"do_fusion":true,
"skip_fusion_layers":[],
"Conv_0":{
"quant_enable":false,
"activation_quant_params":{
"max_percentile":0.999999,
"min_percentile":0.999999,
"search_range":[
0.7,
1.3
],
"search_step":0.01,
"act_algo":"ifmr"
},
"weight_quant_params":{
"wts_algo":"arq_quantize",
"channel_wise":true
}
},
Traceback (most recent call last):
File "/xxss928_207/scripts/yolov8_auto_calibration.py", line 652, in <module>
main()
File "/xxss928_207/scripts/yolov8_auto_calibration.py", line 637, in main
amct.accuracy_based_auto_calibration(
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/check_params.py", line 43, in wrapper
return func(*args, **kwargs)
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/accuracy_based_auto_calibration.py", line 278, in accuracy_based_auto_calibration
auto_calibration_controller.run()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/auto_calibration/accuracy_based_auto_calibration_base.py", line 278, in run
self.global_quant_accuracy = self.get_global_quant_accuracy()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/accuracy_based_auto_calibration.py", line 112, in get_global_quant_accuracy
global_quant_accuracy = self.global_calibration()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/accuracy_based_auto_calibration.py", line 147, in global_calibration
quantize_tool.save_model(
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/check_params.py", line 43, in wrapper
return func(*args, **kwargs)
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/quantize_tool.py", line 169, in save_model
records, _ = record_parser.parse()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/parse_record_file.py", line 104, in parse
self.parse_quant(enable_shift_n)
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/parse_record_file.py", line 170, in parse_quant
layer_params = recorder.parse_quant_value(enable_shift_n)
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/parse_record_file.py", line 235, in parse_quant_value
layer_params['data_scale'] = self.get_scale_d()
File "/ssanaconda3/envs/amct5.20/lib/python3.9/site-packages/amct_onnx/common/utils/parse_record_file.py", line 311, in get_scale_d
raise RuntimeError(
RuntimeError: cannot find scale_d of layer Conv_0 in record_file
batch size 28使用命令行量化失败的输入如下:
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: ******** sensitivity_records ********
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_0 : 0.9999670439888059
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_101 : 0.9999396280693671
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_103 : 0.999948821149602
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_105 : 0.9999764520049783
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_107 : 0.9999909005170811
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_108 : 0.9999596234965378
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_110 : 0.9999558021538939
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_112 : 0.9999990495203087
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_121 : 0.999935876053182
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_13 : 0.9999376239231836
2025-03-05 09:07:20,698 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_15 : 0.9999609247288614
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_17 : 0.9999403839478624
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_2 : 0.9998501436534641
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_20 : 0.9999684259549175
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_22 : 0.9999345541527085
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_25 : 0.9999769020018119
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_27 : 0.9998752821475199
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_31 : 0.9999598136877963
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_33 : 0.9999653573511214
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_35 : 0.9999463998084013
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_38 : 0.999982087487467
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_4 : 0.9999159932750638
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_40 : 0.9999526812481581
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_43 : 0.9999876603892325
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_45 : 0.9999173085469513
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_49 : 0.9999738221183417
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_51 : 0.9999412708178295
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_53 : 0.999950387208521
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_56 : 0.9998612515897569
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_58 : 0.9999641172038505
2025-03-05 09:07:20,699 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_62 : 0.9999676274018379
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_67 : 0.9998977844440532
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_7 : 0.9998731000846035
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_70 : 0.9999811946494144
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_72 : 0.9999853184540759
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_75 : 0.9999802815379566
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_80 : 0.9999496808488224
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_83 : 0.9999457754088382
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_85 : 0.9999768409067382
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_88 : 0.9999663003514874
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_9 : 0.9999573168721607
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_93 : 0.9999061920699115
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_96 : 0.9999282629465169
2025-03-05 09:07:20,700 - INFO - [AMCT]:[AutoCalibrationHelper]: Conv_98 : 0.9999412618251637
禁止量化Conv_0、Conv_2、Conv_7、Conv_67后,模型精度依然为0
RuntimeError: cannot find scale_d of layer Conv_0 in record_file, please check data calibration process!