rockchip-linux / rknn-toolkit2

BSD 3-Clause "New" or "Revised" License
828 stars 151 forks source link

RK3588 YOLOv8-seg量化异常 #303

Open Huntersdeng opened 3 months ago

Huntersdeng commented 3 months ago

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       

问题一: 混合量化步骤一没有使用所用的参数. 1) 设置了optimization_level=0,但是仍然做了优化 2) 设置了quantized_method为channel,但yolov8s-seg.quantization.cfg仍然显示为layer 3) 设置了proposal=False,但yolov8s-seg.quantization.cfg仍然给出了混合量化的建议

问题二: 精度损失巨大 | output1 | 0.125208 | | output2 | 0.131679 | | output5 | 0.736498 | | output6 | 0.223930 |

zen-xingle commented 3 months ago

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.