1.芯片型号:J62.天工开物开发包 OpenExplorer 版本: J6_OE_3.0.173.问题定位:模型转换、板端部署4.问题具体描述:在量化自己的onnx模型时,使用hb_compile --config "./full_compile_config_int8.yaml" 转模型时,转出的量化模型掉点非常多,如附件所示。然后计划使用离线量化的方式,得到了一个量化好的onnx文件。请问如何能将此量化好的带量化节点的onnx模型转出到版端可运行的hbm文件?
用PPQ框架做的量化,它也是基于pytoch框架的。然后输出的结果是一个onnx和对应的json文件(记录了量化节点信息)。我们将这个量化节点信息塞入到HzCalibration层中,然后想将这个量化onnx转出到版端hbm。
目前工具链不无法支持这种第三方量化模型编译的,无论是PYTORCH公版还是变种。一个可行的方向是:1. 多准备一些数据集;2.在 yaml的quant_config中使用all_node_type 配置int16或float16。3.尝试不同的calibration_type并打开per_channel. 在这几个方面试试呢,如果还是不行,也可以用DEBUG工具排查一下敏感节点和数据分布看看,是不是数据分布两端化导致的.
那再请问一下,J6能不能支持将hb_compile编译出的中间模型(*_calibrated_model.onnx,带HzCalibration层节点的模型)通过某些工具或者是有代码接口,进一步转出到.hbm模型呢?(输入:*_calibrated_model.onnx模型,输出:.hbm模型)
修改中间模型是可以的,但是这里的中间模型是PTQ模型,你可以看看中的bc编译模式,https://developer.horizon.auto/developerForum?fullPath=/home/community/bbsdetail?bid=642215179972665344