rknn-toolkit2
rknn-toolkit2 copied to clipboard
RK3588 YOLOv8-seg量化异常
RK3588板环境 系统版本:ubuntu 22.04 rknpu2-dev: 1.5.2
PC环境: 系统版本:ubuntu 22.04 python: 3.8 rknn-toolkit2: 1.5.2+b642f30c
问题描述: 1)YOLOv8-seg模型量化精度异常 2)rknn-toolkit2配置未生效
复现步骤: 模型:官方yolov8s-seg.pt模型https://github.com/ultralytics/assets/releases/download/v8.1.0/yolov8s-seg.pt 转换脚本:
from rknn.api import RKNN
# COCO
ONNX_MODEL = './yolov8s-seg.onnx'
RKNN_MODEL = './yolov8s-seg.rknn'
DATASET = './dataset/COCO/coco_subset_10.txt'
ANALYSIS_DATASET = ['./dataset/COCO/bus.jpg']
def step1():
# Create RKNN object
rknn = RKNN(verbose=True)
# pre-process config
print('--> Config model')
rknn.config(mean_values=[[0, 0, 0]],
std_values=[[255, 255, 255]],
quantized_algorithm='kl_divergence',
quantized_method='channel',
optimization_level=0,
target_platform="rk3588")
print('done')
# Load ONNX model
print('--> Loading model')
ret = rknn.load_onnx(model=ONNX_MODEL)
#ret = rknn.load_onnx(model=ONNX_MODEL, outputs=['326', '372', '418'])
if ret != 0:
print('Load model failed!')
exit(ret)
print('done')
# 调用 hybrid_quantization_step1 产生量化配置文件
print('Hybrid quantization step1')
ret = rknn.hybrid_quantization_step1(dataset=DATASET, rknn_batch_size=1, proposal=False)
if ret != 0:
print('Hybrid quantization step1 failed!')
exit(ret)
print('done')
rknn.release()
def step2():
# Create RKNN object
rknn = RKNN(verbose=True)
# Call hybrid_quantization_step2 to generate hybrid quantized RKNN model
print('Hybrid quantization step2')
ret = rknn.hybrid_quantization_step2(model_input='./yolov8s-seg.model',
data_input='yolov8s-seg.data',
model_quantization_cfg='yolov8s-seg.quantization.cfg')
if ret != 0:
print('Hybrid quantization step2 failed!')
exit(ret)
print('done')
# Export RKNN model
print('--> Export rknn model')
ret = rknn.export_rknn(RKNN_MODEL)
if ret != 0:
print('Export rknn model failed!')
exit(ret)
print('done')
# Accuracy analysis
print('--> Accuracy analysis')
ret = rknn.accuracy_analysis(inputs=ANALYSIS_DATASET,
target="RK3588", device_id="90ce0632eb5338b5")
if ret != 0:
print('Accuracy analysis failed!')
print('done')
rknn.release()
if __name__ == '__main__':
step1()
# step2()
混合量化步骤一输出日志:
╰─ /home/stardust/miniconda3/envs/rknn/bin/python /home/stardust/stardust_project/rknn-deploy/workspace/hybrid_convert.py
W __init__: rknn-toolkit2 version: 1.5.2+b642f30c
--> Config model
done
--> Loading model
Loading : 100%|████████████████████████████████████████████████| 162/162 [00:00<00:00, 17165.45it/s]
done
Hybrid quantization step1
I base_optimize ...
I base_optimize done.
I
I fold_constant ...
I fold_constant done.
I
I correct_ops ...
I correct_ops done.
I
I fuse_ops ...
I fuse_ops results:
I replace_exswish: remove node = ['/model.0/act/Sigmoid', '/model.0/act/Mul'], add node = ['/model.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.1/act/Sigmoid', '/model.1/act/Mul'], add node = ['/model.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.2/cv1/act/Sigmoid', '/model.2/cv1/act/Mul'], add node = ['/model.2/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.2/m.0/cv1/act/Sigmoid', '/model.2/m.0/cv1/act/Mul'], add node = ['/model.2/m.0/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.2/m.0/cv2/act/Sigmoid', '/model.2/m.0/cv2/act/Mul'], add node = ['/model.2/m.0/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.2/cv2/act/Sigmoid', '/model.2/cv2/act/Mul'], add node = ['/model.2/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.3/act/Sigmoid', '/model.3/act/Mul'], add node = ['/model.3/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.4/cv1/act/Sigmoid', '/model.4/cv1/act/Mul'], add node = ['/model.4/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.4/m.0/cv1/act/Sigmoid', '/model.4/m.0/cv1/act/Mul'], add node = ['/model.4/m.0/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.4/m.0/cv2/act/Sigmoid', '/model.4/m.0/cv2/act/Mul'], add node = ['/model.4/m.0/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.4/m.1/cv1/act/Sigmoid', '/model.4/m.1/cv1/act/Mul'], add node = ['/model.4/m.1/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.4/m.1/cv2/act/Sigmoid', '/model.4/m.1/cv2/act/Mul'], add node = ['/model.4/m.1/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.4/cv2/act/Sigmoid', '/model.4/cv2/act/Mul'], add node = ['/model.4/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.5/act/Sigmoid', '/model.5/act/Mul'], add node = ['/model.5/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.6/cv1/act/Sigmoid', '/model.6/cv1/act/Mul'], add node = ['/model.6/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.6/m.0/cv1/act/Sigmoid', '/model.6/m.0/cv1/act/Mul'], add node = ['/model.6/m.0/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.6/m.0/cv2/act/Sigmoid', '/model.6/m.0/cv2/act/Mul'], add node = ['/model.6/m.0/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.6/m.1/cv1/act/Sigmoid', '/model.6/m.1/cv1/act/Mul'], add node = ['/model.6/m.1/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.6/m.1/cv2/act/Sigmoid', '/model.6/m.1/cv2/act/Mul'], add node = ['/model.6/m.1/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.6/cv2/act/Sigmoid', '/model.6/cv2/act/Mul'], add node = ['/model.6/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.7/act/Sigmoid', '/model.7/act/Mul'], add node = ['/model.7/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.8/cv1/act/Sigmoid', '/model.8/cv1/act/Mul'], add node = ['/model.8/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.8/m.0/cv1/act/Sigmoid', '/model.8/m.0/cv1/act/Mul'], add node = ['/model.8/m.0/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.8/m.0/cv2/act/Sigmoid', '/model.8/m.0/cv2/act/Mul'], add node = ['/model.8/m.0/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.8/cv2/act/Sigmoid', '/model.8/cv2/act/Mul'], add node = ['/model.8/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.9/cv1/act/Sigmoid', '/model.9/cv1/act/Mul'], add node = ['/model.9/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.9/cv2/act/Sigmoid', '/model.9/cv2/act/Mul'], add node = ['/model.9/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.12/cv1/act/Sigmoid', '/model.12/cv1/act/Mul'], add node = ['/model.12/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.12/m.0/cv1/act/Sigmoid', '/model.12/m.0/cv1/act/Mul'], add node = ['/model.12/m.0/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.12/m.0/cv2/act/Sigmoid', '/model.12/m.0/cv2/act/Mul'], add node = ['/model.12/m.0/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.12/cv2/act/Sigmoid', '/model.12/cv2/act/Mul'], add node = ['/model.12/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.15/cv1/act/Sigmoid', '/model.15/cv1/act/Mul'], add node = ['/model.15/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.15/m.0/cv1/act/Sigmoid', '/model.15/m.0/cv1/act/Mul'], add node = ['/model.15/m.0/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.15/m.0/cv2/act/Sigmoid', '/model.15/m.0/cv2/act/Mul'], add node = ['/model.15/m.0/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.15/cv2/act/Sigmoid', '/model.15/cv2/act/Mul'], add node = ['/model.15/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.16/act/Sigmoid', '/model.16/act/Mul'], add node = ['/model.16/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.18/cv1/act/Sigmoid', '/model.18/cv1/act/Mul'], add node = ['/model.18/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.18/m.0/cv1/act/Sigmoid', '/model.18/m.0/cv1/act/Mul'], add node = ['/model.18/m.0/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.18/m.0/cv2/act/Sigmoid', '/model.18/m.0/cv2/act/Mul'], add node = ['/model.18/m.0/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.18/cv2/act/Sigmoid', '/model.18/cv2/act/Mul'], add node = ['/model.18/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.19/act/Sigmoid', '/model.19/act/Mul'], add node = ['/model.19/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.21/cv1/act/Sigmoid', '/model.21/cv1/act/Mul'], add node = ['/model.21/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.21/m.0/cv1/act/Sigmoid', '/model.21/m.0/cv1/act/Mul'], add node = ['/model.21/m.0/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.21/m.0/cv2/act/Sigmoid', '/model.21/m.0/cv2/act/Mul'], add node = ['/model.21/m.0/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.21/cv2/act/Sigmoid', '/model.21/cv2/act/Mul'], add node = ['/model.21/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv4.2/cv4.2.0/act/Sigmoid', '/model.22/cv4.2/cv4.2.0/act/Mul'], add node = ['/model.22/cv4.2/cv4.2.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv4.2/cv4.2.1/act/Sigmoid', '/model.22/cv4.2/cv4.2.1/act/Mul'], add node = ['/model.22/cv4.2/cv4.2.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv2.2/cv2.2.0/act/Sigmoid', '/model.22/cv2.2/cv2.2.0/act/Mul'], add node = ['/model.22/cv2.2/cv2.2.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv2.2/cv2.2.1/act/Sigmoid', '/model.22/cv2.2/cv2.2.1/act/Mul'], add node = ['/model.22/cv2.2/cv2.2.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv3.2/cv3.2.0/act/Sigmoid', '/model.22/cv3.2/cv3.2.0/act/Mul'], add node = ['/model.22/cv3.2/cv3.2.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv3.2/cv3.2.1/act/Sigmoid', '/model.22/cv3.2/cv3.2.1/act/Mul'], add node = ['/model.22/cv3.2/cv3.2.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv4.1/cv4.1.0/act/Sigmoid', '/model.22/cv4.1/cv4.1.0/act/Mul'], add node = ['/model.22/cv4.1/cv4.1.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv4.1/cv4.1.1/act/Sigmoid', '/model.22/cv4.1/cv4.1.1/act/Mul'], add node = ['/model.22/cv4.1/cv4.1.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv2.1/cv2.1.0/act/Sigmoid', '/model.22/cv2.1/cv2.1.0/act/Mul'], add node = ['/model.22/cv2.1/cv2.1.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv2.1/cv2.1.1/act/Sigmoid', '/model.22/cv2.1/cv2.1.1/act/Mul'], add node = ['/model.22/cv2.1/cv2.1.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv3.1/cv3.1.0/act/Sigmoid', '/model.22/cv3.1/cv3.1.0/act/Mul'], add node = ['/model.22/cv3.1/cv3.1.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv3.1/cv3.1.1/act/Sigmoid', '/model.22/cv3.1/cv3.1.1/act/Mul'], add node = ['/model.22/cv3.1/cv3.1.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/proto/cv1/act/Sigmoid', '/model.22/proto/cv1/act/Mul'], add node = ['/model.22/proto/cv1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/proto/cv2/act/Sigmoid', '/model.22/proto/cv2/act/Mul'], add node = ['/model.22/proto/cv2/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/proto/cv3/act/Sigmoid', '/model.22/proto/cv3/act/Mul'], add node = ['/model.22/proto/cv3/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv4.0/cv4.0.0/act/Sigmoid', '/model.22/cv4.0/cv4.0.0/act/Mul'], add node = ['/model.22/cv4.0/cv4.0.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv4.0/cv4.0.1/act/Sigmoid', '/model.22/cv4.0/cv4.0.1/act/Mul'], add node = ['/model.22/cv4.0/cv4.0.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv2.0/cv2.0.0/act/Sigmoid', '/model.22/cv2.0/cv2.0.0/act/Mul'], add node = ['/model.22/cv2.0/cv2.0.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv2.0/cv2.0.1/act/Sigmoid', '/model.22/cv2.0/cv2.0.1/act/Mul'], add node = ['/model.22/cv2.0/cv2.0.1/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv3.0/cv3.0.0/act/Sigmoid', '/model.22/cv3.0/cv3.0.0/act/Mul'], add node = ['/model.22/cv3.0/cv3.0.0/act/Sigmoid_2swish']
I replace_exswish: remove node = ['/model.22/cv3.0/cv3.0.1/act/Sigmoid', '/model.22/cv3.0/cv3.0.1/act/Mul'], add node = ['/model.22/cv3.0/cv3.0.1/act/Sigmoid_2swish']
I convert_reduce_sum_to_conv: remove node = ['/model.22/ReduceSum_2'], add node = ['/model.22/ReduceSum_2_2conv']
I convert_reduce_sum_to_conv: remove node = ['/model.22/ReduceSum_1'], add node = ['/model.22/ReduceSum_1_2conv']
I convert_reduce_sum_to_conv: remove node = ['/model.22/ReduceSum'], add node = ['/model.22/ReduceSum_2conv']
I fold_constant ...
I fold_constant done.
I fuse_ops done.
I
I sparse_weight ...
I sparse_weight done.
I
Analysing : 100%|██████████████████████████████████████████████| 183/183 [00:00<00:00, 11048.45it/s]
Quantizating : 100%|██████████████████████████████████████████████| 183/183 [00:42<00:00, 4.33it/s]
I
I quant_optimizer ...
I quant_optimizer results:
I adjust_tanh_sigmoid: ['/model.22/Sigmoid', '/model.22/Sigmoid_1', '/model.22/Sigmoid_2']
I adjust_concat_split: ['/model.21/Concat', '/model.21/Split', '/model.18/Concat', '/model.17/Concat', '/model.15/Concat', '/model.12/Concat', '/model.8/Concat', '/model.6/Concat', '/model.4/Concat']
I adjust_no_change_node: ['/model.9/m_2/MaxPool', '/model.9/m_1/MaxPool', '/model.9/m/MaxPool']
I quant_optimizer done.
I
done
[[输出的yolov8s-seg.quantization.cfg文件内容: yolov8s-seg.quantization.txt
混合量化步骤二输出的连板验证精度输出:
# simulator_error: calculate the simulator errors.
# entire: errors between 'golden' and 'simulator'.
# single: single layer errors. (compare to 'entire', the input of each layer is come from 'golden')!
# runtime_error: calculate the runtime errors.
# entire: errors between 'golden' and 'runtime'.
# single_sim: single layer errors between 'simulator' and 'runtime'.
# ('nan' means that tensor are 'all zeros', or 'all equal', or 'large values', etc)
layer_name simulator_error runtime_error
entire single entire single_sim
---------------------------------------------------------------------------------------------------------------------
[Input] images 1.000000 1.000000 1.000000 1.000000
[exDataConvert] images_int8__float16 1.000000 1.000000
[Conv] /model.0/conv/Conv_output_0 1.000000 1.000000 1.000000 1.000000
[exSwish] /model.0/act/Mul_output_0 1.000000 1.000000 0.999998 0.999998
[Conv] /model.1/conv/Conv_output_0 0.999999 1.000000 0.999998 1.000000
[exSwish] /model.1/act/Mul_output_0 1.000000 1.000000 0.999997 0.999999
[Conv] /model.2/cv1/conv/Conv_output_0 0.999999 1.000000 0.999997 1.000000
[exSwish] /model.2/cv1/act/Mul_output_0 0.999999 1.000000 0.999993 0.999997
[Split] /model.2/Split_output_0 0.999999 1.000000 0.999993 1.000000
[Split] /model.2/Split_output_1 0.999999 1.000000 0.999993 1.000000
[Conv] /model.2/m.0/cv1/conv/Conv_output_0 0.999999 1.000000 0.999992 1.000000
[exSwish] /model.2/m.0/cv1/act/Mul_output_0 0.999998 1.000000 0.999992 0.999999
[Conv] /model.2/m.0/cv2/conv/Conv_output_0 0.999998 1.000000 0.999990 1.000000
[exSwish] /model.2/m.0/cv2/act/Mul_output_0 0.999998 1.000000 0.999992 0.999999
[Add] /model.2/m.0/Add_output_0 0.999999 1.000000 0.999994 1.000000
[Concat] /model.2/Concat_output_0 0.999998 1.000000 0.999993 1.000000
[Conv] /model.2/cv2/conv/Conv_output_0 0.999998 1.000000 0.999990 1.000000
[exSwish] /model.2/cv2/act/Mul_output_0 0.999998 1.000000 0.999991 1.000000
[Conv] /model.3/conv/Conv_output_0 0.999999 1.000000 0.999994 1.000000
[exDataConvert] /model.3/conv/Conv_output_0__int8 0.999904 0.999905 0.999900 1.000000
[exSwish] /model.3/act/Mul_output_0 0.999712 0.999713 0.999707 0.999995
[Conv] /model.4/cv1/conv/Conv_output_0 0.999697 0.999869
[exSwish] /model.4/cv1/act/Mul_output_0 0.999538 0.999876 0.999534 0.999998
[Split] /model.4/Split_output_0 0.999461 0.999849 0.999455 1.000000
[Split] /model.4/Split_output_1 0.999717 0.999913 0.999716 1.000000
[Conv] /model.4/m.0/cv1/conv/Conv_output_0 0.999601 0.999875
[exSwish] /model.4/m.0/cv1/act/Mul_output_0 0.998799 0.999507 0.998789 0.999995
[Conv] /model.4/m.0/cv2/conv/Conv_output_0 0.999532 0.999829
[exSwish] /model.4/m.0/cv2/act/Mul_output_0 0.999391 0.999910 0.999391 0.999996
[Add] /model.4/m.0/Add_output_0 0.999536 0.999900 0.999536 1.000000
[Conv] /model.4/m.1/cv1/conv/Conv_output_0 0.999740 0.999958
[exSwish] /model.4/m.1/cv1/act/Mul_output_0 0.997372 0.997848 0.997376 0.999996
[Conv] /model.4/m.1/cv2/conv/Conv_output_0 0.997706 0.998230
[exSwish] /model.4/m.1/cv2/act/Mul_output_0 0.997658 0.999706 0.997659 0.999997
[Add] /model.4/m.1/Add_output_0 0.998741 0.999814 0.998743 1.000000
[Concat] /model.4/Concat_output_0 0.999081 0.999883 0.999080 1.000000
[Conv] /model.4/cv2/conv/Conv_output_0 0.998995 0.999900
[exSwish] /model.4/cv2/act/Mul_output_0 0.998275 0.999533 0.998271 0.999997
[Conv] /model.5/conv/Conv_output_0 0.999134 0.999786
[exSwish] /model.5/act/Mul_output_0 0.996467 0.997897 0.996458 0.999996
[Conv] /model.6/cv1/conv/Conv_output_0 0.997913 0.999051
[exSwish] /model.6/cv1/act/Mul_output_0 0.997111 0.999616 0.997101 0.999997
[exDataConvert] /model.6/cv1/act/Mul_output_0__float16 0.997112 0.999616 0.997101 1.000000
[Split] /model.6/Split_output_0 0.996765 1.000000 0.996751 1.000000
[Split] /model.6/Split_output_1 0.998072 1.000000 0.998069 1.000000
[exDataConvert] /model.6/Split_output_1__int8 0.997777 0.999602 0.997773 1.000000
[Conv] /model.6/m.0/cv1/conv/Conv_output_0 0.998935 0.999854
[exSwish] /model.6/m.0/cv1/act/Mul_output_0 0.994676 0.997817 0.994685 0.999992
[Conv] /model.6/m.0/cv2/conv/Conv_output_0 0.997526 0.999247
[exSwish] /model.6/m.0/cv2/act/Mul_output_0 0.994799 0.998849 0.994800 0.999993
[Add] /model.6/m.0/Add_output_0 0.996220 0.999134 0.996218 1.000000
[Conv] /model.6/m.1/cv1/conv/Conv_output_0 0.998646 0.999942
[exSwish] /model.6/m.1/cv1/act/Mul_output_0 0.993792 0.996710 0.993789 0.999994
[Conv] /model.6/m.1/cv2/conv/Conv_output_0 0.995344 0.997829 0.995322 0.999998
[exDataConvert] /model.6/m.1/cv2/conv/Conv_output_0__float16 0.995344 0.999828 0.995321 1.000000
[exSwish] /model.6/m.1/cv2/act/Mul_output_0 0.994559 1.000000 0.994526 1.000000
[exDataConvert] /model.6/m.0/Add_output_0__float16 0.996220 0.999814 0.996218 1.000000
[Add] /model.6/m.1/Add_output_0 0.995340 1.000000 0.995316 1.000000
[Concat] /model.6/Concat_output_0 0.996092 1.000000 0.996076 1.000000
[exDataConvert] /model.6/Concat_output_0__int8 0.995836 0.999583 0.995823 0.999998
[Conv] /model.6/cv2/conv/Conv_output_0 0.997972 0.999872
[exSwish] /model.6/cv2/act/Mul_output_0 0.994244 0.998145 0.994243 0.999993
[Conv] /model.7/conv/Conv_output_0 0.997883 0.999449
[exSwish] /model.7/act/Mul_output_0 0.993304 0.999162 0.993281 0.999995
[Conv] /model.8/cv1/conv/Conv_output_0 0.995852 0.999654
[exSwish] /model.8/cv1/act/Mul_output_0 0.992441 0.999049 0.992438 0.999996
[Split] /model.8/Split_output_0 0.991735 0.998857 0.991741 1.000000
[Split] /model.8/Split_output_1 0.989582 0.994118 0.989560 1.000000
[Conv] /model.8/m.0/cv1/conv/Conv_output_0 0.994679 0.997575
[exSwish] /model.8/m.0/cv1/act/Mul_output_0 0.985564 0.995179 0.985530 0.999996
[Conv] /model.8/m.0/cv2/conv/Conv_output_0 0.990769 0.997637 0.990715 0.999997
[exDataConvert] /model.8/m.0/cv2/conv/Conv_output_0__float16 0.990770 0.999782 0.990715 1.000000
[exSwish] /model.8/m.0/cv2/act/Mul_output_0 0.988347 1.000000 0.988264 1.000000
[exDataConvert] /model.8/Split_output_1__float16 0.989589 0.994368 0.989558 1.000000
[Add] /model.8/m.0/Add_output_0 0.987352 1.000000 0.987258 1.000000
[exDataConvert] /model.8/m.0/Add_output_0__int8 0.987235 0.999853 0.987155 0.999996
[Concat] /model.8/Concat_output_0 0.988545 0.998956 0.988492 1.000000
[Conv] /model.8/cv2/conv/Conv_output_0 0.993268 0.999934
[exSwish] /model.8/cv2/act/Mul_output_0 0.988431 0.998617 0.988410 0.999995
[Conv] /model.9/cv1/conv/Conv_output_0 0.995147 0.999600
[exSwish] /model.9/cv1/act/Mul_output_0 0.995686 0.999977 0.995701 0.999998
[MaxPool] /model.9/m/MaxPool_output_0 0.998157 0.999993 0.998176 1.000000
[MaxPool] /model.9/m_1/MaxPool_output_0 0.998345 0.999995 0.998374 1.000000
[MaxPool] /model.9/m_2/MaxPool_output_0 0.998438 0.999996 0.998475 1.000000
[Concat] /model.9/Concat_output_0 0.998165 0.999988 0.998191 1.000000
[Conv] /model.9/cv2/conv/Conv_output_0 0.996734 0.999909
[exSwish] /model.9/cv2/act/Mul_output_0 0.983371 0.991884 0.983471 0.999995
[Resize] /model.10/Resize_output_0 0.983371 0.991884 0.983471 1.000000
[Concat] /model.11/Concat_output_0 0.987593 0.994258 0.987647 1.000000
[Conv] /model.12/cv1/conv/Conv_output_0 0.991737 0.998124
[exSwish] /model.12/cv1/act/Mul_output_0 0.987277 0.998000 0.987263 0.999996
[Split] /model.12/Split_output_0 0.983949 0.996749 0.983951 1.000000
[Split] /model.12/Split_output_1 0.989459 0.998788 0.989435 1.000000
[Conv] /model.12/m.0/cv1/conv/Conv_output_0 0.991305 0.999938
[exSwish] /model.12/m.0/cv1/act/Mul_output_0 0.982684 0.999581 0.982592 0.999993
[Conv] /model.12/m.0/cv2/conv/Conv_output_0 0.982501 0.999761
[exSwish] /model.12/m.0/cv2/act/Mul_output_0 0.972088 0.990556 0.971959 0.999997
[Concat] /model.12/Concat_output_0 0.981439 0.995096 0.981388 1.000000
[Conv] /model.12/cv2/conv/Conv_output_0 0.987011 0.997520
[exSwish] /model.12/cv2/act/Mul_output_0 0.975684 0.997228 0.975644 0.999996
[Resize] /model.13/Resize_output_0 0.975685 0.997228 0.975644 1.000000
[Concat] /model.14/Concat_output_0 0.984781 0.997112 0.984755 0.999999
[Conv] /model.15/cv1/conv/Conv_output_0 0.994747 0.999449
[exSwish] /model.15/cv1/act/Mul_output_0 0.995976 0.999960 0.995956 0.999997
[Split] /model.15/Split_output_0 0.996633 0.999970 0.996601 1.000000
[Split] /model.15/Split_output_1 0.994637 0.999879 0.994642 1.000000
[Conv] /model.15/m.0/cv1/conv/Conv_output_0 0.993847 0.999878
[exSwish] /model.15/m.0/cv1/act/Mul_output_0 0.991842 0.999939 0.991862 0.999994
[Conv] /model.15/m.0/cv2/conv/Conv_output_0 0.990124 0.999900
[exSwish] /model.15/m.0/cv2/act/Mul_output_0 0.992060 0.999958 0.992110 0.999997
[Concat] /model.15/Concat_output_0 0.994582 0.999928 0.994586 1.000000
[Conv] /model.15/cv2/conv/Conv_output_0 0.993808 0.999937
[exSwish] /model.15/cv2/act/Mul_output_0 0.993252 0.999942 0.993281 0.999993
[Conv] /model.16/conv/Conv_output_0 0.984581 0.999898
[exSwish] /model.16/act/Mul_output_0 0.965541 0.994624 0.965579 0.999996
[Concat] /model.17/Concat_output_0 0.972043 0.996269 0.972031 1.000000
[Conv] /model.18/cv1/conv/Conv_output_0 0.981650 0.998201
[exSwish] /model.18/cv1/act/Mul_output_0 0.971250 0.999479 0.971254 0.999996
[Split] /model.18/Split_output_0 0.973918 0.999562 0.973978 1.000000
[Split] /model.18/Split_output_1 0.964332 0.994438 0.964221 1.000000
[Conv] /model.18/m.0/cv1/conv/Conv_output_0 0.985269 0.998521
[exSwish] /model.18/m.0/cv1/act/Mul_output_0 0.975605 0.999534 0.975545 0.999995
[Conv] /model.18/m.0/cv2/conv/Conv_output_0 0.963114 0.999551
[exSwish] /model.18/m.0/cv2/act/Mul_output_0 0.953899 0.997655 0.954108 0.999997
[Concat] /model.18/Concat_output_0 0.961866 0.997476 0.961958 1.000000
[Conv] /model.18/cv2/conv/Conv_output_0 0.980369 0.999478
[exSwish] /model.18/cv2/act/Mul_output_0 0.967018 0.998585 0.967117 0.999994
[Conv] /model.19/conv/Conv_output_0 0.978109 0.999521
[exSwish] /model.19/act/Mul_output_0 0.955933 0.988509 0.956107 0.999996
[Concat] /model.20/Concat_output_0 0.971698 0.990355 0.971838 1.000000
[Conv] /model.21/cv1/conv/Conv_output_0 0.985268 0.996546
[exSwish] /model.21/cv1/act/Mul_output_0 0.970007 0.997934 0.970007 0.999995
[Split] /model.21/Split_output_0 0.970068 0.999353 0.969994 1.000000
[Split] /model.21/Split_output_1 0.967899 0.992915 0.967956 1.000000
[Conv] /model.21/m.0/cv1/conv/Conv_output_0 0.988204 0.998082
[exSwish] /model.21/m.0/cv1/act/Mul_output_0 0.959128 0.989179 0.959249 0.999994
[Conv] /model.21/m.0/cv2/conv/Conv_output_0 0.978439 0.994900
[exSwish] /model.21/m.0/cv2/act/Mul_output_0 0.941659 0.963073 0.941747 0.999998
[Concat] /model.21/Concat_output_0 0.951232 0.975574 0.951287 1.000000
[Conv] /model.21/cv2/conv/Conv_output_0 0.967255 0.981855
[exSwish] /model.21/cv2/act/Mul_output_0 0.946344 0.995443 0.946423 0.999993
[Conv] /model.22/cv4.2/cv4.2.0/conv/Conv_output_0 0.976794 0.998878 0.976687 0.999997
[exDataConvert] /model.22/cv4.2/cv4.2.0/conv/Conv_output_0__float16 0.976793 0.999902 0.976688 1.000000
[exSwish] /model.22/cv4.2/cv4.2.0/act/Mul_output_0 0.979537 1.000000 0.979627 1.000000
[Conv] /model.22/cv4.2/cv4.2.1/conv/Conv_output_0 0.984081 1.000000 0.984063 1.000000
[exSwish] /model.22/cv4.2/cv4.2.1/act/Mul_output_0 0.986374 1.000000 0.986365 1.000000
[Conv] output11_int8 0.992544 1.000000
[exDataConvert] output11 0.992544 1.000000 0.992501 1.000000
[Conv] /model.22/cv2.2/cv2.2.0/conv/Conv_output_0 0.966998 0.997992 0.967220 0.999998
[exDataConvert] /model.22/cv2.2/cv2.2.0/conv/Conv_output_0__float16 0.966999 0.999892 0.967220 1.000000
[exSwish] /model.22/cv2.2/cv2.2.0/act/Mul_output_0 0.972475 1.000000 0.972623 1.000000
[Conv] /model.22/cv2.2/cv2.2.1/conv/Conv_output_0 0.978953 1.000000 0.978722 1.000000
[exSwish] /model.22/cv2.2/cv2.2.1/act/Mul_output_0 0.983686 1.000000 0.983433 1.000000
[Conv] output8_int8 0.992880 1.000000
[exDataConvert] output8 0.992880 1.000000 0.992856 1.000000
[Conv] /model.22/cv3.2/cv3.2.0/conv/Conv_output_0 0.969897 0.996682 0.970212 0.999995
[exDataConvert] /model.22/cv3.2/cv3.2.0/conv/Conv_output_0__float16 0.969894 0.999736 0.970213 1.000000
[exSwish] /model.22/cv3.2/cv3.2.0/act/Mul_output_0 0.967017 1.000000 0.967431 1.000000
[Conv] /model.22/cv3.2/cv3.2.1/conv/Conv_output_0 0.973027 1.000000 0.973418 1.000000
[exSwish] /model.22/cv3.2/cv3.2.1/act/Mul_output_0 0.978745 1.000000 0.979017 1.000000
[Conv] /model.22/cv3.2/cv3.2.2/Conv_output_0 0.999228 1.000000 0.999227 1.000000
[Sigmoid] output9_int8 0.993253 1.000000
[exDataConvert] output9 0.993253 1.000000 0.991211 0.997793
[Conv] /model.22/ReduceSum_2_output_0 0.993216 1.000000
[Clip] output10_int8 0.993216 1.000000
[exDataConvert] output10 0.993216 1.000000 0.902946 0.907305
[Conv] /model.22/cv4.1/cv4.1.0/conv/Conv_output_0 0.974635 0.999637
[exSwish] /model.22/cv4.1/cv4.1.0/act/Mul_output_0 0.978413 0.999659 0.978607 0.999996
[Conv] /model.22/cv4.1/cv4.1.1/conv/Conv_output_0 0.983883 0.999745 0.983974 0.999998
[exDataConvert] /model.22/cv4.1/cv4.1.1/conv/Conv_output_0__float16 0.983883 0.999912 0.983974 1.000000
[exSwish] /model.22/cv4.1/cv4.1.1/act/Mul_output_0 0.983129 1.000000 0.983230 1.000000
[Conv] output7_int8 0.992122 1.000000
[exDataConvert] output7 0.992122 1.000000 0.992180 1.000000
[Conv] /model.22/cv2.1/cv2.1.0/conv/Conv_output_0 0.959621 0.999012 0.959668 0.999996
[exDataConvert] /model.22/cv2.1/cv2.1.0/conv/Conv_output_0__float16 0.959621 0.999758 0.959668 1.000000
[exSwish] /model.22/cv2.1/cv2.1.0/act/Mul_output_0 0.961373 1.000000 0.961553 1.000000
[Conv] /model.22/cv2.1/cv2.1.1/conv/Conv_output_0 0.971303 1.000000 0.971525 1.000000
[exSwish] /model.22/cv2.1/cv2.1.1/act/Mul_output_0 0.977228 1.000000 0.977464 1.000000
[Conv] output4_int8 0.993265 1.000000
[exDataConvert] output4 0.993265 1.000000 0.993345 1.000000
[Conv] /model.22/cv3.1/cv3.1.0/conv/Conv_output_0 0.969095 0.999391
[exSwish] /model.22/cv3.1/cv3.1.0/act/Mul_output_0 0.953357 0.998573 0.953245 0.999995
[Conv] /model.22/cv3.1/cv3.1.1/conv/Conv_output_0 0.977318 0.998247 0.977310 0.999988
[exDataConvert] /model.22/cv3.1/cv3.1.1/conv/Conv_output_0__float16 0.977316 0.999430 0.977311 1.000000
[exSwish] /model.22/cv3.1/cv3.1.1/act/Mul_output_0 0.981851 1.000000 0.981897 1.000000
[Conv] /model.22/cv3.1/cv3.1.2/Conv_output_0 0.999710 1.000000 0.999714 1.000000
[Sigmoid] output5_int8 0.986039 1.000000
[exDataConvert] output5 0.986039 1.000000 0.736498 0.747560
[Conv] /model.22/ReduceSum_1_output_0 0.989157 1.000000
[Clip] output6_int8 0.989157 1.000000
[exDataConvert] output6 0.989157 1.000000 0.223930 0.227319
[Conv] /model.22/proto/cv1/conv/Conv_output_0 0.991815 0.999881
[exSwish] /model.22/proto/cv1/act/Mul_output_0 0.985442 0.998241 0.985507 0.999995
[ConvTranspose] /model.22/proto/upsample/ConvTranspose_output_0 0.993589 0.999328 0.993615 0.999999
[Conv] /model.22/proto/cv2/conv/Conv_output_0 0.996772 0.999993
[exSwish] /model.22/proto/cv2/act/Mul_output_0 0.996644 0.999980 0.996637 0.999996
[Conv] /model.22/proto/cv3/conv/Conv_output_0 0.988931 0.999829 0.988919 0.999998
[exDataConvert] /model.22/proto/cv3/conv/Conv_output_0__float16 0.988931 0.999921 0.988919 1.000000
[exSwish] proto_int8 0.989512 1.000000
[exDataConvert] proto 0.989512 1.000000 0.989494 1.000000
[Conv] /model.22/cv4.0/cv4.0.0/conv/Conv_output_0 0.985720 0.999909
[exSwish] /model.22/cv4.0/cv4.0.0/act/Mul_output_0 0.986436 0.999769 0.986434 0.999997
[Conv] /model.22/cv4.0/cv4.0.1/conv/Conv_output_0 0.986299 0.999826 0.986237 1.000000
[exDataConvert] /model.22/cv4.0/cv4.0.1/conv/Conv_output_0__float16 0.986299 0.999935 0.986238 1.000000
[exSwish] /model.22/cv4.0/cv4.0.1/act/Mul_output_0 0.988153 1.000000 0.988096 1.000000
[Conv] output3_int8 0.995409 1.000000
[exDataConvert] output3 0.995409 1.000000 0.995372 1.000000
[Conv] /model.22/cv2.0/cv2.0.0/conv/Conv_output_0 0.989050 0.999792
[exSwish] /model.22/cv2.0/cv2.0.0/act/Mul_output_0 0.986228 0.999830 0.986218 0.999990
[exDataConvert] /model.22/cv2.0/cv2.0.0/act/Mul_output_0__float16 0.986228 0.999830 0.986219 1.000000
[Conv] /model.22/cv2.0/cv2.0.1/conv/Conv_output_0 0.984343 1.000000 0.984311 1.000000
[exSwish] /model.22/cv2.0/cv2.0.1/act/Mul_output_0 0.986249 1.000000 0.986199 1.000000
[Conv] output0_int8 0.995273 1.000000
[exDataConvert] output0 0.995273 1.000000 0.995252 1.000000
[Conv] /model.22/cv3.0/cv3.0.0/conv/Conv_output_0 0.989440 0.999885
[exSwish] /model.22/cv3.0/cv3.0.0/act/Mul_output_0 0.971564 0.993903 0.971541 0.999995
[Conv] /model.22/cv3.0/cv3.0.1/conv/Conv_output_0 0.980204 0.991985 0.980069 0.999993
[exDataConvert] /model.22/cv3.0/cv3.0.1/conv/Conv_output_0__float16 0.980204 0.999633 0.980068 1.000000
[exSwish] /model.22/cv3.0/cv3.0.1/act/Mul_output_0 0.985248 1.000000 0.985197 1.000000
[Conv] /model.22/cv3.0/cv3.0.2/Conv_output_0 0.999838 1.000000 0.999837 1.000000
[Sigmoid] output1_int8 0.706008 1.000000
[exDataConvert] output1 0.706008 1.000000 0.125208 0.181133
[Conv] /model.22/ReduceSum_output_0 0.818402 1.000000
[Clip] output2_int8 0.818402 1.000000
[exDataConvert] output2 0.818402 1.000000 0.131679 0.159088
问题一: 混合量化步骤一没有使用所用的参数.
- 设置了optimization_level=0,但是仍然做了优化
- 设置了quantized_method为channel,但yolov8s-seg.quantization.cfg仍然显示为layer
- 设置了proposal=False,但yolov8s-seg.quantization.cfg仍然给出了混合量化的建议
问题二: 精度损失巨大 | output1 | 0.125208 | | output2 | 0.131679 | | output5 | 0.736498 | | output6 | 0.223930 |
Yolov8-seg demo for RKNN is available here https://github.com/airockchip/rknn_model_zoo.
The model output struct needs to be changed for quantization, which has been done in rknn_model_zoo demo.