GpuDelegateV2 Tflite 不接受任何参数

Posted

技术标签:

【中文标题】GpuDelegateV2 Tflite 不接受任何参数【英文标题】:GpuDelegateV2 Tflite won't accept any parameters 【发布时间】:2021-12-20 23:50:33 【问题描述】:

我正在使用 tflite_flutter 包来加载 tflite 模型。我通过安装包

flutter pub 添加 tflite_flutter

sh install.sh -d 用于使用 GpuDelegateV2

按照我从文档中复制的示例代码。

final gpuDelegateV2 = GpuDelegateV2(
    options: GpuDelegateOptionsV2(
    false,
    TfLiteGpuInferenceUsage.fastSingleAnswer,
    TfLiteGpuInferencePriority.minLatency,
    TfLiteGpuInferencePriority.auto,
    TfLiteGpuInferencePriority.auto,
));

var interpreterOptions = InterpreterOptions()..addDelegate(gpuDelegateV2);
final interpreter = await Interpreter.fromAsset('your_model.tflite',
    options: interpreterOptions);

但它给出了异常位置参数过多:预期为 0,但找到了 5。 尝试删除额外的位置参数,或指定命名参数的名称 linter 还在“false”参数上给出了红线。

【问题讨论】:

【参考方案1】:

可能文档没有更新,因为构造函数只允许命名参数所以代码会这样

getModel() async 
  final gpuDelegateV2 = GpuDelegateV2(
    options: GpuDelegateOptionsV2(
      isPrecisionLossAllowed: false,
      inferencePriority1: TfLiteGpuInferencePriority.minLatency,
      inferencePriority2: TfLiteGpuInferencePriority.auto,
      inferencePriority3: TfLiteGpuInferencePriority.auto,
    ),
  );

  var interpreterOptions = InterpreterOptions()..addDelegate(gpuDelegateV2);
final interpreter = await Interpreter.fromAsset('your_model.tflite',
options: interpreterOptions);

现在可以正常使用了。

【讨论】:

以上是关于GpuDelegateV2 Tflite 不接受任何参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在图像分类上快速运行 tflite 模型

如何查看 .tflite 文件中的权重?

TensorFlow:如何修复 tflite 的 createtflitesimdmodule 返回空缓冲区

Tensorflow 2,将 .h5 模型转换为 .tflite,缺少 .pb 和 .pbtext

Tensorflow Object-API:将 ssd 模型转换为 tflite 并在 python 中使用

如何在 tflite 模型中组合数据预处理代码(在 tflite 中集成数据预处理代码)