我在我的应用程序中使用tflite_flutter
- a Dog Detector,如果相机视图中有狗,它将返回一个Rect
- 一个狗分类器,使用Rect裁剪图像并返回品种。
都使用tflite_flutter。在我的三星Galaxy S10e上,每次花费50 - 70毫秒。我想提高性能。我试过了
- 改变线程数
- 使用. .useNnApiForAndroid = true
- 使用.addDelegate(gpuDelegateV2)和.addDelegate(NnApiDelegate()后安装。bat -d
- 在隔离 中运行检测器
没什么帮助。我还能尝试什么?有什么想法吗?
life操作的推断/延迟取决于多种因素,如委托兼容性,制造商是否启用委托等。
附加少量因素优化模型以获得低延迟和高推理时间。
1。量化和委托兼容性:如。GPU委托支持所有范围的量化,但Hexagon委托更兼容整数和量化感知模型
2。模型内部各层的GPU兼容性。默认情况下,GPU委托不支持所有操作,因此您必须放置替代api来使用GPU委托。例如,leakyrelu不支持,但GPU支持relu。
你可以使用model_analyzer检查你的生命模型的GPU兼容性,推理时间取决于模型如何有效地利用GPU/NNAPI/其他委托。您可以使用Benchamarking apk根据不同的委托检查生命模型的性能,通过禁用可疑层的量化来相应地优化模型。
3。用户序列化和设备上培训:您可以使用序列化/设备上训练来减少预热时间或提高推理时间。
4。推理过程中相同的输入形状:请确保在推理过程中使用与生命模型输入相同的输入形状,以避免尺寸不匹配问题。