【问题标题】:Flutter Tflite PlatformException error model cannot be found yet its correctly mentionedFlutter Tflite PlatformException 错误模型尚未正确提及
【发布时间】:2020-12-12 19:01:00
【问题描述】:

我在颤振中使用 tflite 时遇到了困难

问题是应用程序无法加载模型,但我确实在 pubspec.yaml 文件中提到了资产,而且我确实正确拼写了模型名称和标签文本,但我仍然收到错误

Pubspeck.yaml

assets:
  - asset/fruit.txt
  - asset/model.tflite
  - asset/model_unquant.tflite
  - asset/labels2.txt

加载模型

loadModel() async {
    String res = await Tflite.loadModel(
        labels: "asset/labels2.txt",
        model: "asset/model_unquant.tflite",
    );
    print(res);
  }

预测

predict(String path) async {
    var recognitions = await Tflite.runModelOnImage(
        path: path,
        threshold: 0.3,
        imageMean: 0.0,
        imageStd: 255.0,
        numResults: 292
    );
    setState(() {
      _recognitions = recognitions;
      char = _recognitions[0]["labels"];
      item = _recognitions[0];
    });
  }

追溯

*E/flutter (18543): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: PlatformException(Failed to load model, flutter_assets/asset/model_unquant.tflite, java.io.FileNotFoundException: flutter_assets/asset/model_unquant.tflite*
E/flutter (18543):  at android.content.res.AssetManager.nativeOpenAssetFd(Native Method)
E/flutter (18543):  at android.content.res.AssetManager.openFd(AssetManager.java:899)
E/flutter (18543):  at sq.flutter.tflite.TflitePlugin.loadModel(TflitePlugin.java:207)
E/flutter (18543):  at sq.flutter.tflite.TflitePlugin.onMethodCall(TflitePlugin.java:95)
E/flutter (18543):  at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/flutter (18543):  at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/flutter (18543):  at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/flutter (18543):  at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (18543):  at android.os.MessageQueue.next(MessageQueue.java:336)
E/flutter (18543):  at android.os.Looper.loop(Looper.java:197)
E/flutter (18543):  at android.app.ActivityThread.main(ActivityThread.java:8107)
E/flutter (18543):  at java.lang.reflect.Method.invoke(Native Method)
E/flutter (18543):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
E/flutter (18543):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
E/flutter (18543): , null)
E/flutter (18543): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:582:7)
E/flutter (18543): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:18)
E/flutter (18543): <asynchronous suspension>
E/flutter (18543): #2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12)
E/flutter (18543): #3      Tflite.loadModel (package:tflite/tflite.dart:16:27)
E/flutter (18543): #4      ResPicState.loadModel (package:respic/main.dart:53:31)
E/flutter (18543): #5      ResPicState.initState (package:respic/main.dart:48:5)
E/flutter (18543): #6      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4765:58)
E/flutter (18543): #7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter (18543): #8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter (18543): #9      Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter (18543): #10     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter (18543): #11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter (18543): #12     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter (18543): #13     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter (18543): #14     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter (18543): #15     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter (18543): #16     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter (18543): #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter (18543): #18     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter (18543): #19     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter (18543): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter (18543): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter (18543): #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6118:14)
E/flutter (18543): #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter (18543): #24     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter (18543): #25     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4652:16)
E/flutter (18543): #26     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4800:11)
E/flutter (18543): #27     Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5)
E/flutter (18543): #28     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5)
E/flutter (18543): #29     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4791:11)
E/flutter (18543): #30     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5)
E/flutter (18543): #31     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
E/flutter (18543): #32     Element.updateChild (package:flutter/src/widgets/framework.dart:3327:18)
E/flutter (18543): #33     SingleChildRenderObjec
D/ViewRootImpl@6337ccf[MainActivity](18543): ViewPostIme pointer 0
D/ViewRootImpl@6337ccf[MainActivity](18543): ViewPostIme pointer 1

我不知道是什么导致了这个错误,我也尝试过使用不同版本的 tflite 和不同类型的模型并进行清理,但问题仍然存在。 谢谢阅读, 问候, 肉山

【问题讨论】:

  • 你的 build.gradle 中有 aaptOptions { noCompress 'tflite' noCompress 'lite' } 吗?
  • 感谢您的提问,是的,我在 android 下的应用级别 build.gradle 中这样做
  • 检查stackoverflow.com/questions/63306627/… .我认为它与TFlite无关

标签: android flutter tensorflow-lite


【解决方案1】:

删除 pubspec.yaml 中的资产 它应该是: 资产:

  • 水果.txt
  • model.tflite
  • model_unquant.tflite
  • labels2.txt

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 2019-06-10
    • 2022-08-23
    • 2020-04-06
    • 2014-10-30
    相关资源
    最近更新 更多