我们目前正在将液位检测应用迁移到最新的硬件版本,但我们在机器学习堆栈中遇到了一个关键问题。
在新的 Verdin iMX95 H 8GB WB IT V1.0B 上,我们的 TFLite 模型输出无声无息地失败了。
我们使用完全相同的 Python 推理脚本,完全相同的 .tflite 模型,以及与 V1.0A 硬件完全相同的输入 .jpg 。脚本使用 tflite_runtime 并成功加载 /usr/lib/libneutron_delegate.so 外部代表。
但是,在 V1.0B 板上,无论提供何种输入图像,NPU 都会为每个推理返回完全静态的、错误的输出(扁平概率分布)。
以下是 tdx-info ,用于失败的 V1.0B 设置:
plaintextSoftware 摘要引导加载程序:U-Boot 内核版本:6.6.119-7.5.0-devel #1 SMP PREEMPT 1 月 5 日星期一 09:23:13 UTC 2026 内核命令行:root=partuuid=cb6ffc87-02 ro rootwait console=tty1 console=ttylp2,115200 发行版名称:NAME= " TDX Wayland 配有 xWayland " 发行版版本:version_id=7.5.0-devel-20251222135345-build.0 主机名:verdin-imx95-12594956
相比之下,以下是完全相同的流水线,可以在我们的旧版 V1.0A 板上完美运行:
以下是 V1.0A 设置的 tdx-info :
plaintextSoftware 摘要引导加载程序:U-Boot 内核版本:6.6.101-7.4.0-devel #1 SMP PREEMPT 9 月 25 日星期四 07:49:28 UTC 2025 内核命令行:root=partuuid=3cb8eaf4-02 ro rootwait console=tty1 console=ttylp2,115200 发行版名称:NAME= " TDX Wayland 配备 xWayland " 发行版版本:version_id=7.4.0-devel-20251222121713-build.0 主机名:verdin-imx95-12594073
问题
您使用的是 i.MX95 CPU B0 吗?如果将 CPU A1 切换为 CPU B0,则需要使用新的eIQ 中子 SDK 将量化的 tflite 模型重新转换为中子图。
您可以按照 SDK 中的指南转换和部署模型。
@yipingwang感谢您的回复
我们使用 Toradex Verdin 板。Toradex COM Verdin IMX95
旧版本(V1.0A)的芯片如下:
| PIMX9596 |
| CVTXNAB |
| 1P23K |
| SBADD2432A |
新版(V1.0B)该版本的芯片如下
| PIMX9596 |
| XVTXNAC |
| OP21N |
| SBAY2582A |
我们在这里发布了与 Toradex 相同的问题: https://community.toradex.com/t/npu-inference-returns-static-flat-output-on-verdin-imx95-v1-0b-wit...
他们推荐了要使用的图像,我们使用指定的变流器转换了模型,这解决了问题。
不过,Toradex 的这个新镜像版本还不稳定,我们无法将生产版本更新到这个版本。我仍然想知道为什么新的芯片版本不再适用于来自 Toradex 稳定版本的旧镜像。
BSP 6.6版本已经过时了,当时 Neutron NPU 仅支持有限的运算符和模型。在电路板支持包 6.12 中,我们重新设计并更新了 Neutron 驱动程序,这就是为什么转换后的模型可以在 6.12 上运行但在 6.6 上失败的原因。
我们强烈建议在转换和部署模型时将最新的电路板支持包与相应的 Neutron SDK 一起使用。有关详细使用说明和电路板支持包要求,请参阅 Neutron‑Converter SDK 中包含的文档。