Tensorflow-Lite - 基准测试工具 - 不同的结果

Tensorflow-Lite - Benchmark tool - Varying results

我正在尝试使用 TFLite Benchmark tool with mobilenet model and checking the final inference time in microseconds to compare different models. The issue I am facing is with varying results between runs. I also found this section in the documentation which is pertaining to reducing variance between runs on Android。它解释了如何在 运行 基准之前设置 CPU 亲和力以获得运行之间的一致结果。目前工作使用红米Note 4和一加

  1. 有人能解释一下我应该为我的实验设置什么 CPU affinity 值吗?

  2. 我可以在网上或 Android phone 上找到不同手机的亲和面具吗?

  3. 当我增加 --warmup_runs 参数的数量时,我得到的结果变化较小。是否有更多方法可以使我的结果更加一致?

  4. Androidphone 上的后台进程会影响我的 inference time 吗?有什么方法可以阻止它们以减少结果差异?

  1. 正如文档所建议的,任何值都可以,只要您在整个实验中与某个值保持一致即可。需要考虑的一件事是使用大核还是小核(如果你是 big.little 架构),通常最好同时尝试两者(它们具有不同的缓存大小等)

  2. 是的,您通常可以在线找到此信息。以 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0515b/CJHBGEBA.html 为例。您需要查看您的特定 phone,查看它使用的特定 CPU,然后 google 从那里获取更多信息。

  3. 我试过 --warmup_runs = 2000+,通常它非常稳定。较小的模型有更多的差异。对于密集模型(至少对于特定设备),您可能想查看设备是否过热等。我还没有在中端 phone 看到这个,但听说人们有时会保留他们的设备在凉爽的地方(风扇、冰箱)做这个。

  4. 他们可能会,但这是不可避免的。您能做的最好的事情就是关闭所有应用程序并断开与 Internet 的连接。不过,我个人还没有看到它们引入太多差异。