在 android studio 中使用 chaquopy 加载模型 hdf5

Posted

技术标签:

【中文标题】在 android studio 中使用 chaquopy 加载模型 hdf5【英文标题】:load model hdf5 with chaquopy in android studio 【发布时间】:2022-01-14 20:10:01 【问题描述】:

我的朋友训练了 1 个模型 hdf5,我想用 chaquopy 在 android studio 中加载该模型,但尽管尝试了很多方法,但还是失败了。 我的代码是这样的,包括 pickle 和 keras:

import numpy as np
import pickle
from os.path import dirname, join
from keras.models import load_model

def predict(src):
    filename = join(dirname(__file__),"best_model.hdf5")
    pickle_in=open(filename,"rb")
    #model = pickle.load(pickle_in) load with pickle
    model = load_model(filename)    #load with keras
    samples, sample_rate = librosa.load(src, sr = 8000)
    #classes = ['app', 'gmail', 'image', 'mess', 'phone']
    #prob=model.predict(samples.reshape(1,8000,1))
    #index=np.argmax(prob[0])
    return len(samples)

使用pickle,出现错误“无效的加载键,'H'”。使用keras的load_model,出现“ValueError: Unknown layer: Functional”的错误。我尝试更改 keras 和 tensorflow 的版本,但错误仍然存​​在。 我使用 Python 3.9,当我安装 tensorflow 2.6.0 时出现错误“错误:找不到满足要求 tensorflow==2.6.0(来自版本:2.1.0)的版本”。我应该如何加载这个模型。

【问题讨论】:

请阅读this article以获得更快更准确的答案。 【参考方案1】:

Chaquopy 目前仅提供 TensorFlow 版本 2.1.0,因此使用较新版本创建的模型可能不兼容。尝试使用匹配版本的 TensorFlow 重新生成您的模型。

要在 Chaquopy 更新其 TensorFlow 版本时收到通知,您可以订阅this issue。

【讨论】:

以上是关于在 android studio 中使用 chaquopy 加载模型 hdf5的主要内容,如果未能解决你的问题,请参考以下文章

怎样在Android Studio中使用Uiautomator

在 android studio 中使用设备调试时,Android Logcat 为空

在Android Studio中使用lambda表达式

在android项目和库中使用支持库(Android Studio)

如何在 Android Studio 中使用我自己的 Android.mk 文件

如何设置android studio run release