tflite 模型在 CPU 和 NNAPI 上输出不同的预测

问题描述

我在 Ubuntu 18.04 机器上训练和量化了一个 Tensorflow 模型,并将其转换为 tflite 格式。然后我将其部署在配备 NPU 加速器 tflite_runtimeNNAPI 的 Linux Yocto 板上。我注意到在我的 PC 上使用 cpu 和板上的 NPU+nnapi 进行推理时,相同的 tflite 模型输出不同的预测。预测通常是相似的,但在某些情况下它们完全不同。我尝试禁用板上的 nnapi 并使用 cpu 进行推理,结果与在 PC cpu 上的结果相同。所以我认为问题出在 nnapi 上。但是,我不知道为什么会发生这种情况。有没有办法在训练期间防止它或使网络更健壮?

解决方法

萤火虫,

NNAPI 团队也有兴趣了解更多信息。

可以预期会有微小的变化,但不应出现完全不同的结果。

您在不同的设备上尝试过吗?您看到相同的变化吗?

您提到了 Linux Yocto 构建。您是在 Yocto 上使用 Android 运行测试,还是使用 NNAPI 的 Linux 版本?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...