专栏算法工具链量化自定义音频标记模型精度损失过大

量化自定义音频标记模型精度损失过大

PandaFist2023-08-11
34
19
1.芯片型号:X3派
2.天工开物开发包OpenExplorer版本:Ai_Toolchain_Package-release-v1.20.1-OE-v2.6.2b
3.问题定位:模型转换
4.问题具体描述:根据官方教程走的模型量化,具体模型结构:EfficientNet + Attention,音频的频谱特征提取和预处理部分放在模型外部处理,没有使用官方提供的预处理算子,校准数据也是同步的预处理过后才保存下来的特征,已检查yaml配置文件中input_type_rt、input_type_train参数均为featuremap,目前发现量化过程中部分量化节点相似度偏离严重,整体mAP下降了10几个点,推理结果也经常出现nan的情况。
算法工具链
评论2
0/1000
  • 颜值即正义
    Lv.2

    您好,您可以通过以下方式来进行PTQ的精度调优:1.尝试不同的calibration_type,使用max校准并尝试不同的分位值max_percentile;2.开启per_channel量化;3.对余弦相似度低的算子强制运行在cpu上(run_on_cpu)

    2023-08-11
    0
    17
    • PandaFist回复颜值即正义:

      你好,强制算子在cpu运行是直接在config.yaml的run_on_cpu里指定吗,还需要其他操作吗,我添加了之后会导致上个bpu算子的输出出错

      2023-08-21
      0
    • 颜值即正义回复PandaFist:

      方便用百度网盘提供下转换前的onnx文件和yaml吗

      2023-08-21
      0
    • PandaFist回复颜值即正义:

      能私发吗,涉及到公司业务

      2023-08-21
      0
    • 颜值即正义回复PandaFist:

      已收到,我们分析一下

      2023-08-21
      0
    • 颜值即正义回复PandaFist:
      本身就运行在cpu的算子,不需要run_on_cpu,另外配置的格式手册里没有写的特别明白,是这样的
      run_on_cpu:'Conv_69;Conv_72'
      另外我这里出现的转换日志和你那张截图不太一样,确实一下是不是在2.6.2对应的docker环境运行的呢?
      2023-08-21
      0
    • 颜值即正义回复PandaFist:
      先试一下2.6.2的docker环境做转换吧,而且不用开启set_model_output_int8
      2023-08-21
      0
    • PandaFist回复颜值即正义:

      2.6.2的docker环境在哪呢,我这边在docker hub上没看到

      2023-08-21
      0
    • 颜值即正义回复PandaFist:
      2023-08-21
      0
    • PandaFist回复颜值即正义:

      好的谢谢

      2023-08-21
      0
    • PandaFist回复颜值即正义:

      请问这个是什么问题呢,强制cpu运行就会出现

      2023-08-22
      0
    • 颜值即正义回复PandaFist:

      你配的是哪些算子?把run_on_cpu后的内容贴一下吧

      2023-08-22
      0
    • PandaFist回复颜值即正义:

      Mul_12;GlobalAveragePool_52;Mul_67;GlobalAveragePool_68;Conv_69;Mul_71;Conv_72;Mul_74;Mul_98;GlobalAveragePool_99;Conv_100;Mul_105;Mul_114;GlobalAveragePool_115;Conv_116;Mul_118;Mul_121;GlobalAveragePool_146;Conv_147;Mul_149;Mul_152;GlobalAveragePool_162;Conv_163;Mul_165;Mul_168;Mul_177;GlobalAveragePool_178;Mul_184;GlobalAveragePool_194;Conv_195;Mul_197;GlobalAveragePool_209;GlobalAveragePool_225;Conv_226;Mul_228;Mul_231;GlobalAveragePool_241;Conv_242;Mul_247;GlobalAveragePool_272;Mul_278;GlobalAveragePool_288;Conv_289;Mul_291;Mul_294;GlobalAveragePool_304;Conv_305;Mul_307;Mul_310;Mul_319;GlobalAveragePool_320;Conv_321;Mul_323;Conv_324;Mul_326;Mul_335;GlobalAveragePool_336;Conv_337;Mul_339;Mul_342;Mul_350;GlobalAveragePool_351;Mul_357;Conv_358_sub1;Conv_358_sub2;Mul_362;AveragePool_364;Sigmoid_367;Clip_374;Sigmoid_382;Sigmoid_384;Clip_389;Sigmoid_397;Sigmoid_399;Clip_404;Conv_411;Sigmoid_412;Sigmoid_414;Clip_419

      2023-08-22
      0
    • 颜值即正义回复PandaFist:

      我这里报的错和你的不一样:

      ERROR *** ERROR-OCCUR-DURING {runtime.runtime_model_generation} ***, error message: HorizonRT not support these cpu operators: HzSwish

      不需要配置这么多算子都run_on_bpu哈,建议试一下我们的PTQ精度debug工具,尝试一下相关调优措施,参考链接:

      4.1.2.11. 精度debug工具 — Horizon Open Explorer

      【PTQ精度debug示例】mnasnet_1.0_96精度问题分析 (horizon.cc)

      【PTQ精度debug示例】MobileVit_s精度问题分析 (horizon.cc)

      【PTQ精度debug示例】repvgg_b2_deploy精度问题分析 (horizon.cc)

      另外还有配置int16量化的方法:

      PTQ精度调优手段—设置Int16量化 (horizon.cc)

      2023-08-22
      0
    • PandaFist回复颜值即正义:

      我想问下校准数据一定要覆盖所有类别所有场景而且数量均衡吗

      2023-08-23
      0
    • 颜值即正义回复PandaFist:

      校准数据别用很特殊的图(纯黑纯白,没有目标区域等)就行,没有特别严格的要求

      2023-08-23
      0
    • PandaFist回复颜值即正义:

      您好,我使用了精度debug工具,普通节点、权重节点和激活节点的量化误差都不明显,但量化过程中很多算子误差很大,强制cpu运行的方法始终有报错,能帮我分析一下这些算子run_on_cpu的报错吗:

      GlobalAveragePool_52;GlobalAveragePool_68;Conv_69;Conv_72;Mul_74;GlobalAveragePool_99;Conv_100;Mul_105;GlobalAveragePool_115;Conv_116;Mul_121;GlobalAveragePool_146;Conv_147;Mul_152;GlobalAveragePool_162;Conv_163;Mul_168;GlobalAveragePool_178;Mul_184;GlobalAveragePool_194;Conv_195;GlobalAveragePool_209;GlobalAveragePool_225;Conv_226;Mul_231;GlobalAveragePool_241;Conv_242;Mul_247;GlobalAveragePool_272;Mul_278;GlobalAveragePool_288;Conv_289;Mul_294;GlobalAveragePool_304;Conv_305;Mul_310;GlobalAveragePool_320;Conv_321;Conv_324;Mul_326;GlobalAveragePool_336;Conv_337;Mul_342;GlobalAveragePool_351;Mul_357;Conv_358_sub1;Conv_358_sub2;AveragePool_364;Sigmoid_367;Clip_374;Sigmoid_382;Sigmoid_384;Clip_389;Sigmoid_397;Sigmoid_399;Clip_404;Conv_411;Sigmoid_412;Sigmoid_414;Clip_419

      2023-08-24
      0
    • 颜值即正义回复PandaFist:

      。。。建议你可以先配置一部分算子run_on_cpu,看有没有报错,没有的话就再加一些算子,这么重复几次,出现报错了就知道是哪一个或者哪几个算子的问题了~

      2023-08-24
      0
  • 颜值即正义
    Lv.2
    您好,地平线工具链在持续迭代优化,为了给您提供更好的服务,希望您能抽出3分钟左右的时间,将您在使用工具链期间的感受和建议告诉我们,您的宝贵意见对我们很重要,非常感谢!
    问卷链接:地平线算法工具链使用满意度反馈
    2023-08-11
    0
    0