在 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项目和库中使用支持库(Android Studio)