在Flutter中加载自定义ML模型时出错

时间:2019-10-02 15:32:25

标签: android tensorflow flutter tensorflow-lite

我无法在Flutter中加载tensorflow lite模型。我正在使用这个库

https://github.com/shaqian/flutter_tflite

当我尝试加载模型时,我收到此错误。

E/flutter ( 7258): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(error, Unsupported value: java.io.FileNotFoundException: flutter_assets/assets/output.tflite, 

我已按照该库文档中的所有步骤进行操作。没有该库,是否还有另一种方法可以在Flutter中加载此模型?

2 个答案:

答案 0 :(得分:1)

如果您已经训练了 Keras模型(HDF5),请将其转换为 Tensorflow模型(.pb),然后将其转换为Tflite 请参考下面的代码:

转换器= tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)

tflite_model = converter.convert()

open(“ converted_model.tflite”,“ wb”)。write(tflite_model)

答案 1 :(得分:0)

确保在您的 pubspec.yaml 文件中声明模型资产:

flutter:
  assets:
    - assets/tflite/model.tflite
    - assets/tflite/labels.txt 

否则在代码中尝试加载模型时会收到此错误,例如:

      String tfResponse;
      tfResponse = await Tflite.loadModel(
        model: "assets/tflite/model.tflite",
        labels: "assets/tflite/labels.txt",

      );
      print("Response: TF Model Load $tfResponse");
    } catch (e) {
      print('Failed to load model. Error: $e');
    } 

编辑:我正在使用这个包 https://pub.dev/packages/tflite