我创建了一个深度学习模型(使用 Inception),然后将该模型转换为 TensorFlow lite 模型以在 Flutter 中使用。后来我把这个模型添加到了Flutter的assets文件夹中。
但是我无法访问 tflite_flutter 包的内容。所以我无法导入
package:tflite_flutter/tflite_flutter.dart';
这是我的
main.dart
文件:
import 'package:flutter/material.dart';
import 'package:kamera/pages/home_page.dart';
import 'package:tflite_flutter/tflite_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await loadModel();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Mobil Uygulama',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(),
);
}
}
Future<void> loadModel() async {
await TfliteFlutter.loadModel(
model: 'assets/inceptionv3_model.tflite',
// labels: 'assets/inceptionv3_labels.txt',
);
}
这是我的
pubspec.yml
文件:
dependencies:
flutter:
sdk: flutter
image_picker: ^1.1.1
tflite_flutter: ^0.10.4
flutter:
assets:
- assets/inceptionv3_model.tflite
这是错误:
[{
"resource": ".../AndroidStudioProjects/kamera/lib/main.dart",
"owner": "_generated_diagnostic_collection_name_#0",
"code": {
"value": "undefined_identifier",
"target": {
"$mid": 1,
"path": "/diagnostics/undefined_identifier",
"scheme": "https",
"authority": "dart.dev"
}
},
"severity": 8,
"message": "Undefined name 'TfliteFlutter'.\nTry correcting the name to one that is defined, or defining the name.",
"source": "dart",
"startLineNumber": 26,
"startColumn": 9,
"endLineNumber": 26,
"endColumn": 22
}]
flutter 中有两个独立的张量流主包。
我可以看到您已导入第一个包,但使用了第二个包的模型加载模式。 您需要使用以下行来加载带有导入包的模型;
final interpreter = await Interpreter.fromAsset('assets/your_model.tflite');
然后您可以使用
interpreter
来推断您的模型。