白菜飘落
1
1.芯片型号:J5-
2.天工开物开发包OpenExplorer版本:J5_OE_1.1.29-
3.问题定位:QAT训练-
4.问题具体描述:QAT训练时,使用RGB/BGR而非YUV数据来训练。根据PTQ&QAT方案板端验证注意事项中的2.2.1章可以手动添加预处理OP。其中有几个问题比较疑惑:
- 第四步“推理一次quantized模型”的目的是什么?只是验证精度吗?
- 要得到插入这个op的hbm,只需要compile_perf.py调用到了插入了这个OP的模型forward代码就行了是吗?
颜值即正义
2
颜值即正义
3
您好,推理一次quantized模型的目的是为了跑一遍模型,让预处理op被正确插入,并且也是建议插入后验证一下模型推理结果是否正确。-
想要确认节点是否被插入,可以使用可视化工具export_quantized_onnx查看:4.2.4.5. Bug 检查 — Material for Sphinx (hobot.cc)
白菜飘落
4
您好,那我要编译出hbm,是否只要编译这个带着预处理op的模型forward即可?
颜值即正义
7
您好,plugin原生只支持 yuv444 & 均值和方差均为128,编译时通过compile_model( ··· , input_source=“pyramid”,···)来指定板端数据来源为PYM。-
如果模型使用的是rgb或者bgr训练,则使用centered_yuv2rgb / centered_yuv2bgr 算子,将归一化参数配置到这个算子里,训练的时候使用plugin提供的quantstub,并且不要指定scale(即动态统计);编译阶段把统计出来的scale配置到算子的qscale参数里,并且把quantstub的scale设置成1,就可以了。-
如果模型使用yuv444训练,但是均值方差不为128,目前暂不支持。