我是靠谱客的博主 简单小松鼠,最近开发中收集的这篇文章主要介绍keras无法多次调用model.predict,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在用keras循环预测各个主体时,经常会内存溢出。但是单个主体是没有错误的。发现我在对对象重新赋值后内存并没有释放。随着循环次数增加最后内存溢出的


model = keras.models.load_model('F:/DB1/model/Away10reluBNCNN1D/3468910-1/DB1_s'+ str(j) + '1Seg205m.h5')
Y_test = to_categorical(np.array(Y_test))
Y_predict = model.predict([Xtest1, Xtest2,Xtest3, Xtest4,Xtest5, Xtest6,Xtest7, Xtest8,Xtest9, Xtest10])
# # 返回每行中概率最大的元素的列坐标(热编码转为普通标签)
y_pred = Y_predict.argmax(axis=1)
y_true = Y_test.argmax(axis=1)

解决方案:

从别人博客看到的keras无法多次调用model.predict_classes-python黑洞网

1.尝试从函数外部的文件中加载模型,并将模型对象作为函数的参数def predictOne(imgPath, model)。这也将更快,因为不需要每次需要预测时就从磁盘加载权重。

def predictOne(imgPath):
model = load_model("withImageMagic.h5")
image = read_image(imgPath)
test_sample = preprocess(image)
predicted_class = model.predict_classes(([test_sample]))
return predicted_class

2.

如果要继续在函数内加载模型,请导入后端:

from keras import backend as K

接着

K.clear_session()

在加载模型之前。

最后

以上就是简单小松鼠为你收集整理的keras无法多次调用model.predict的全部内容,希望文章能够帮你解决keras无法多次调用model.predict所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部