工具与软件:
您好!
我目前正在开发 ONNX 格式的人脸检测模型。 我有两种模型版本:原始(非量化)和量化版本。 我在 TIDL 流水线的不同阶段会遇到问题、非常希望获得有关如何进行的指导。
问题描述
-
量化模型转换问题 :
我尝试过使用该tidl_model_import.out工具将模型的量化版本转换为 TIDL 格式。 转换过程似乎成功完成、执行过程中没有出现错误。但是、当将转换后的模型与 TIDL API 和相关库一起运行推理时、输出无效。 具体而言:
- 输出中的张量尺寸是正确的。
- 张量值是高度重复的、特定数字在转换到其他重复序列之前重复多次。
这种行为显然是不正确的、并且与预期的输出不一致。
-
原始模型转换失败 :
我曾尝试结合使用原始(非量化)模型和 TIDL 工具来执行量化和校准、但该过程始终失败、并显示以下错误:TIDL ALLOWLISTING LAYER CHECK: TIDL_E_QUANT_STATS_NOT_AVAILABLE tidl_quant_stats_tool.out fails to collect dynamic range. Please look into quant stats log. This model will get fault on target.尽管调整了各种论据并多次重试该流程、但我无法解决此问题。 无论所做的更改如何、错误始终存在。
补充意见
为了验证 TIDL 工作流程、我成功测试了一个更简单的 ONNX 模型(MBIST 分类):
- 我使用相同的工具和参数执行量化、校准和转换。
- 生成的模型可在包含28x28位图像的数据集上保持出色的分类精度(99.8%)、即使在校准数据集之外的测试数据上也是如此。
这证实了 TIDL 工具和流水线可以在更简单的分类模型中正确工作。
但是、我的面部检测模型更复杂、具有三路输出、它是一种检测模型而不是分类模型。
请求协助
我在这一点上卡住了、需要帮助才能继续前进:
- 如何解决转换型量化模型的重复输出和无效输出的问题?
- 我可以采取哪些步骤来调试和修复原始(非量化)模型的量化和校准故障?
如果任何其他日志、输出或配置有助于澄清情况、我很乐意提供。 我们的最后期限很紧、需要紧急援助才能取得进展。
提前感谢您的帮助!
此致、
Kfir
软件工程师