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
总是在加载的模型之后运行(类似于上面给出的第一个示例),这会导致上面显示的错误。有没有办法解决这些问题?您是否自定义在课堂上创建的会话?如果首先创建、自定义和设置会话,然后实例化类,会怎么样?这对你的场景有效吗?你能更具体一点吗?我不完全理解你的观点。我的意思是你是否修改了新创建会话的属性?您不能先创建会话,设置它,然后加载模型并将其传递给类吗?