首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Keras模型转换为TFLite的正确方法

将Keras模型转换为TFLite的正确方法
EN

Stack Overflow用户
提问于 2022-02-27 22:59:12
回答 1查看 479关注 0票数 1

我已经创建了一个简单的LSTM模型,我想在我的Android应用程序中使用它。我将其转换为TFLite模型,并将其保存在.tflite文件中。我根据本指南将模型导入到我的项目中,一切似乎都还好-- Android向我展示了当我想使用它时应该使用的示例代码,除非我尝试使用,否则在构建时会出现以下错误:

错误:包com.example.app.ml不存在导入com.example.app.ml.SnoreModel

我发现,当我使用不包含LSTM层的模型时,它工作得很好。我尝试了两种不同的方法将我的Keras模型转换为TFLite,一种来自保存的模型(如下面所示),另一种来自加载的模型。在这两种情况下,我必须设置supported_ops和_experimental_lower_tensor_list_ops = false,否则转换将失败。

代码语言:javascript
复制
    TFLITE_SAVE_FILE = "SnoreModel.tflite"
    converter = lite.TFLiteConverter.from_saved_model(filepath)
    converter.target_spec.supported_ops = [lite.OpsSet.TFLITE_BUILTINS, lite.OpsSet.SELECT_TF_OPS] 
    converter._experimental_lower_tensor_list_ops = False

    tflite_model = converter.convert()
    with open(TFLITE_SAVE_FILE, 'wb') as tflite_model_file:
        tflite_model_file.write(tflite_model)

keras模型是这样保存的:

代码语言:javascript
复制
    model.save(KERAS_SAVE_FILE)

我正在使用最新版本的Android,并正在为27编译。在应用程序的build.gradle中,对于tflite,无论是否使用org.tensorflow:tensorflow-lite:2.7.0,错误都是相同的,其余部分是在我导入模型时由Android自动添加的:

代码语言:javascript
复制
    implementation 'org.tensorflow:tensorflow-lite:2.7.0'
    implementation 'org.tensorflow:tensorflow-lite-metadata:0.3.0'
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.3.0'
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.3.0'
    implementation 'org.tensorflow:tensorflow-lite-task-audio:0.3.0'
    implementation 'org.tensorflow:tensorflow-lite-support:0.3.0'

我想问的是:我转换模型的方式有什么问题吗?如果是的话,我将如何解决这个问题,因为我发现的大部分问题都很老,而且都链接到了Android版本。提前感谢

EN

回答 1

Stack Overflow用户

发布于 2022-02-28 15:53:43

错误消息没有显示任何关于失败原因的详细信息,甚至不显示它是否与TFLite相关。

缺少的一件事是,如果您使用SELECT_TF_OPS转换模型,并且模型有一些Select操作,那么您将需要添加依赖项,例如

代码语言:javascript
复制
implementation 'org.tensorflow:tensorflow-lite-select-tf-ops:0.0.0-nightly-SNAPSHOT'

请参阅更多信息,这里可以减少二进制大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71289145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档