如何解决在特定设备上运行实现tensorflow-lite的android应用程序时出现错误
在特定设备上运行实现 tensorflow-lite 的 android 应用程序时发生错误。
例如)LG X4、LG Q52
调用函数时出错 -> tfLite.runForMultipleInputsOutputs(inputArray,outputMap);
这是我的错误日志。
E/AndroidRuntime: FATAL EXCEPTION: inference
Process: org.tensorflow.lite.examples.detection,PID: 13469
java.lang.IllegalArgumentException: Internal error: Failed to run on the given Interpreter: Next operations are not supported by GPU delegate:
ADD:
CONCATENATION:
CONV_2D:
EXP: Operation is not supported.
LEAKY_RELU:
LOGISTIC:
MAX_POOL_2D:
MUL:
RESHAPE:
RESIZE_BILINEAR:
SPLIT: Operation is not supported.
SPLIT_V: Operation is not supported.
STRIDED_SLICE:
SUB: Expected 2 input tensor(s),but node has 1 runtime input(s).
First 61 operations will run on the GPU,and the remaining 144 on the CPU.
OpenCL library not loaded - dlopen fai
at org.tensorflow.lite.NativeInterpreterWrapper.run(Native Method)
at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:154)
at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:314)
at org.tensorflow.lite.examples.detection.tflite.YoloV4Classifier.getDetectionsForTiny(YoloV4Classifier.java:421)
at org.tensorflow.lite.examples.detection.tflite.YoloV4Classifier.recognizeImage(YoloV4Classifier.java:461)
at org.tensorflow.lite.examples.detection.tflite.YoloV4Classifier.recognizeImage(YoloV4Classifier.java:50)
at org.tensorflow.lite.examples.detection.DetectorActivity$3.run(DetectorActivity.java:304)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
I/Process: Sending signal. PID: 13469 SIG: 9
Connected to process 13858 on device 'lge-lm_q520n-LMQ520NOFAIMNHYEMS'.
请帮帮我
解决方法
您没有提供其他详细信息,如果它适用于其他设备或模型是如何生成的。我以前遇到过这个错误。它可能与设备无关。根据错误日志,您似乎是 using this repository 使用 yolov4 tflite 模型进行对象检测任务。
java.lang.IllegalArgumentException: Internal error: Failed to run on the given Interpreter: Next operations are not supported by GPU delegate:
EXP: Operation is not supported.
SPLIT: Operation is not supported.
SPLIT_V: Operation is not supported.
在将保存的模型转换为 tflite 时,在 tf.lite.OpsSet.SELECT_TF_OPS
中使用 converter.target_spec.supported_ops
。同样在 build.gradle
中使用以下任一项,
implementation 'org.tensorflow:tensorflow-lite-select-tf-ops:2.3.0'
implementation 'org.tensorflow:tensorflow-lite-select-tf-ops:0.0.0-nightly'
。
这会增加 apk 的大小,但这可以通过 tensorflow-lite-select-tf-ops.aar
的 selective build 解决。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。