Tensor is not an element of this graph; deploying Keras model
解决办法:
在每个模型实例化时创建新的graph
创建模型之前 添加graph
部分代码
class Inference(object):
loaded_model = None
classes_in_keras_format = None
graph=None
session=None
def __init__(self, company_id):
self.company_id = company_id
if Inference.classes_in_keras_format is not None:
return
self.load_classes()
Inference.classes_in_keras_format = dict(zip(config.classes, range(len(config.classes))))
self.set_img_format()
Inference.session = tf.Session()
Inference.graph = tf.get_default_graph()
with Inference.graph.as_default():
with Inference.session.as_default():
self.create_model()
self.load_model()
def predict(self, predict_images):
with Inference.graph.as_default():
with Inference.session.as_default():
predict_images = self.preprocess_input(predict_images)
out = Inference.loaded_model.predict(np.array(predict_images))
解决思路
解决多模型方法 graph
https://stackoverflow.com/questions/51127344/tensor-is-not-an-element-of-this-graph-deploying-keras-model?r=SearchResults