量化精度出现了负值

我模型的量化精度出现了负值,这是怎么回事,

是模型本身的问题,还是校准数据的问题啊

怎么解决?

感谢您使用地平线芯片算法工具链,最近我们在收集大家的满意度反馈,欢迎您填写问卷,详细情况可见:https://developer.horizon.ai/forumDetail/146177053698464782

您好,请问您使用的OE版本是什么呢?方便提供一下模型和模型转换时的yaml配置文件,方便我们复现一下您的问题吗?

我用的是horizon_xj3_open_explorer_v2.4.2_20221227的OE包

这下面是我的sh,yml,以及校准数据,在进行第二步时,我对校准数据制作的preprocess.py进行了修改,将PadResizeTransformer(target_size=(672, 672))改成了PadResizeTransformer(target_size=(416, 416)),因为我的模型是(1,3,416,416)的

链接:https://pan.baidu.com/s/1JoaGF\_wrWUKszFpRn9ajAg?pwd=1234

提取码:1234

对了,进行问题复现的时候注意一下,我的模型通过第一步检查是安装了你给我的wheel文件才成功的,所以要安装那两个文件https://pan.horizon.ai/index.php/s/TR23PCziJBTSdEk

您好,经分析,log输出的中间层余弦相似度为负数时,也是有可能产生正确结果的,看输出层的余弦相似度较高,建议您参考这篇文章的前两节来验证一下模型精度情况:https://developer.horizon.ai/forumDetail/71036815603174578

我看了那个文章,它2.1的那个onnx的代码,它预测数据是怎么输入的,是dict()这个字典吗?那图片怎么放在这个字典里面?

您好,dict()的key是模型输入节点名称,value是对应的image_data就可以啦,建议您可以先百度了解一下onnxruntime模型推理,再看那篇文章会更顺畅一些~

那个postprocess与preporcess,这两个函数要自己实现吗?案例里里面preporcess还好能用,但是postprocess好像不行,报错了,然后我有看每个案例模型的postprocess好像都不一样啊,这怎么实现啊

可以参考OE包中的示例实现模型的前后处理,也可以参考自己的源代码自行实现哈。深度学习任务不同,前后处理也是不同的。