我正在尝试在运行 Android 9 的设备上使用新的 Google 机器学习 SDK,ML Kit。根据官方网站:
ML Kit 通过将 Google 的机器学习技术(如 Google Cloud Vision API、TensorFlow Lite 和 Android Neural Networks API)整合到一个 SDK 中,使您能够轻松地在应用程序中应用机器学习技术。无论您需要基于云的处理能力、移动优化设备模型的实时能力,还是自定义 TensorFlow Lite 模型的灵活性,ML Kit 都只需几行代码即可实现。
我认为这意味着在至少运行 Android 8.1(根据 nnapi 文档)的设备上,SDK 可以使用 NNAPI。但当我在运行 Android 7.1 的设备上(nnapi 不受支持)运行相同应用时,我获得了与使用 Android 9(理论上使用 NNAPI)的设备相同的性能。我该如何使用 ML Kit 与 NNAPI?我做错了什么?ML Kit 的文档链接:https://firebase.google.com/docs/ml-kit/
回答:
根据 2018 年 10 月的论文:AI Benchmark: Running Deep Neural Networkson Android Smartphones,当没有特定的硬件和/或驱动程序可用时,NNAPI 默认使用 CPU 路径。在论文的末尾指出,一些设备存在实现问题。
由于论文的作者包括来自 Qualcomm、ARM、华为、MediaTek 和苏黎世联邦理工学院的代表,这可能是关于 Android 机器学习状态的最全面的概述。
在 2019 年 1 月,Google 宣布了TensorFlow Lite 具有 GPU 加速的开发者预览版,这将解决论文中提出的部分问题。
2020 年 7 月更新:
研究人员有一个网站:http://ai-benchmark.com/
他们在 2019 年 10 月更新了他们的论文:AI Benchmark: All About Deep Learning on Smartphones in 2019