Python Keras可以';使用backend.set_会话时无法正确加载模型

Python Keras可以';使用backend.set_会话时无法正确加载模型,python,keras,backend,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构建的保存模型

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

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
但是,如果我们
首先设置会话
,如下所示

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\u session
设置GPU使用选项。因此,当我启动
deploy
时,
set\u session
总是在加载的模型之后运行(类似于上面给出的第一个示例),这会导致上面显示的错误。有没有办法解决这些问题?

您是否自定义在课堂上创建的会话?如果首先创建、自定义和设置会话,然后实例化类,会怎么样?这对你的场景有效吗?你能更具体一点吗?我不完全理解你的观点。我的意思是你是否修改了新创建会话的属性?您不能先创建会话,设置它,然后加载模型并将其传递给类吗?