2397295_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2397295_zh-CN

2397295_zh-CN

Facemesh Landmark 模型 ptq 转换中的性能下降

本仓库中使用的是 NXP 在 ptq 之后发布的 Google FaceMesh 模型:
nxp-demo-experience-demos-list/downloads.json 位于 lf-6.12.3_1.0.0 · nxp-imx-support/nxp-demo-experien...
但该模型基于谷歌旧的 FaceMesh 模型,该模型有 468 个地标点。

现在我们想升级到谷歌新的 FaceMesh 模型,它有 478 个地标点。我们希望在 iMX 95 FRDM 板 NPU 上运行此程序。所以,我们想把它量化。我们使用的是NXP的eIQ-neutron-sdk-linux-3.1.3量化该模型。

经过量化之后,我们发现模型性能显著下降,几乎无法实际使用。

最初我们使用 MIN-MAX 选项对其进行量化。那个模型根本没法用。然后我们尝试使用百分位数选项,发现将百分位数设置为 95 时性能更好(即使这是回归器的输出)。
但这仍然无法带来理想的性能。

1)NXP为旧版FaceMesh(468)模型创建ptq文件时,使用了MIN-MAX选项吗?或者百分位数?

2)量化后性能急剧下降时,我们还需要检查其他方面吗?

3) 我们使用 CelebA 数据集进行性能分析,在 scripts 目录中使用 serialize_image.py 脚本并设置了模型特定选项。我们应该运行完整的媒体管道并创建校准数据集,还是应该修改 serialize 脚本?

提供的选项

serialize_image.py
-i //218 x 178 正面 RGB 图像
-o
-f bin
-t float32
-m 0到1
-s 256,256
-布局 NHWC
-co RGB

tflite-profiler:
--input
--dataset
--输出

tflite-quantizer:
--input
--profile
--quantize-inputs=false
--quantize-outputs=false
--quantization-calibration-method= //最小值、最大值或百分位数

Re: Performance degradation in Facemesh Landmark model ptq conversion

@dhilshad
感谢您联系恩智浦技术支持!

1)很遗憾,我们目前没有相关信息。

2)这种行为是预期的。量化只是部署过程的一部分;将模型转换为嵌入式硬件上执行并进行优化还涉及几个额外的步骤,例如图优化、运算符映射、硬件特定的转换和运行时验证。因此,即使模型已经量化,模型的行为和性能也可能发生变化。

对于新的设计和评估,我建议使用 eIQ Olive,因为它为 NXP i.MX 平台上的模型优化和部署提供了一个更现代化的框架。它包括更新的工作流程和对当前机器学习部署场景的改进支持。

更多信息请参考以下教程和文档:

https://eiq.nxp.com/learning-hub/tools/olive/index.html

这些资源涵盖了在 i.MX 设备上部署机器学习模型的推荐工作流程和最佳实践。

此致,
查维拉

标记 (1)
无评分
版本历史
最后更新:
昨天
更新人: