我的问题的最低版本如下所示
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
总是在加载的模型之后运行(类似于上面给出的第一个示例),这会导致上面显示的错误。有什么办法可以解决此类问题?