原因:多线程情况下,model执行预测时的session、graph环境和加载时的不一致。

解决办法:

加载模型前,先执行

from tensorflow.keras import backend as K
K.clear_session()

加载模型后获取session、graph,并保存:

K.get_session()

tf.get_default_graph()
在做预测的时候,用保存的session、graph下执行预测:
with self.sessions.as_default():
with self.graphs.as_default():
model.predict(img)

该方法还可以提高模型加载速度。