使用backend.set_session时Keras无法正确加载模型

时间:2018-09-10 05:27:33

标签: python keras backend

我的问题的最低版本如下所示

import numpy as np
from keras import backend as K
from keras.models import load_model

model = load_model('model_1.h5')
K.set_session(tf.Session())
state = np.matrix(np.array([1,1,1,1,1]))
model.predict(state)

此处model_1.h5是Keras构建的已保存模型。上面的代码显示了错误

Attempting to use uninitialized value dense_2/kernel

但是,如果我们首先set_session如下

K.set_session(tf.Session())
model = load_model('model_1.h5')
state = np.matrix(np.array([1,1,1,1,1]))
model.predict(state)

然后一切正常。

在我的实际问题中,我编写了一个类deploy,该类将已加载的模型作为其输入。在该类的初始化中,我还使用set_session设置GPU使用率选项。因此,当我启动deploy时,set_session总是在加载的模型之后运行(类似于上面给出的第一个示例),这会导致上面显示的错误。有什么办法可以解决此类问题?

0 个答案:

没有答案