Минимальная версия моей проблемы представлена следующим образом
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
для настройки параметров использования графического процессора. Таким образом, когда я запускаю deploy
, set_session
всегда запускается сразу после загруженной модели (аналогично приведенному выше первому примеру), что вызывает ошибку, показанную выше. Есть ли способ исправить такие проблемы?