Flutter中TensorFlow Lite模型运行失败,提示需启用Flex delegate
Flutter中TensorFlow Lite模型运行失败,提示需启用Flex delegate
兄弟,我之前做Flutter TFLite项目的时候也踩过这个坑!这个错误说白了就是你的模型里用到了一些TFLite默认解释器不支持的TensorFlow原生算子,得启用Flex delegate才能让这些算子正常工作,咱们一步步来解决:
先搞定Android端的依赖配置
首先打开你Flutter项目里的android/app/build.gradle文件(是app模块下的那个,别找错根目录的了),在dependencies代码块里加上这个依赖:
implementation 'org.tensorflow:tensorflow-lite-select-tf-ops:2.15.0'
这里的版本号建议和你用的TFLite相关插件版本保持一致,避免版本不兼容的问题。
然后在Flutter代码里启用Flex delegate
根据你用的TFLite插件不同,配置方式略有区别:
- 如果你用的是
tflite_flutter插件(现在更推荐这个),初始化解释器的时候要加上Flex delegate的配置:
import 'package:tflite_flutter/tflite_flutter.dart'; // 替换成你的模型路径 final interpreter = await Interpreter.fromAsset( 'assets/your_model.tflite', options: InterpreterOptions()..addDelegate(FlexDelegate()), );
- 要是你用的是旧版的
tflite插件,初始化模型的时候开启useFlexDelegate选项就行:
import 'package:tflite/tflite.dart'; await Tflite.loadModel( model: "assets/your_model.tflite", options: { 'useFlexDelegate': true, }, );
最后再提几个要注意的小细节
- 导出TFLite模型的时候,要确认你是允许使用Select TF Ops的,不然就算加了依赖也白搭。
- 配置完之后记得执行一下
flutter clean,再重新运行项目,避免缓存导致依赖没生效。
备注:内容来源于stack exchange,提问作者Tshadow123
相关产品推荐
相关产品推荐

