槑槑匠

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

flask部署keras模型的加载预测问题

启动服务,加载keras模型,调用模型的预测函数(model.predict)时报错如下,但不通过服务,单独调用预测函数没有错误。

ValueError: Tensor Tensor(“...”, shape=(?, 6), dtype=float32) is not an element of this graph.

在model.predict()之前加上with 语句,将动态图固定:

import tensorflow as tf  
graph = tf.get_default_graph()  
global graph 
with graph.as_default():

tensorflow的操作都是默认加载在一个默认的Graph中,所以如果为了避免出错,自己就要创建Graph以及Session,
如果上述方法不可行,可尝试:

import tensorflow as tf
import keras
graph = tf.get_default_graph()
sess = keras.backend.get_session()
global graph, sess
with sess.as_default():
        with graph.as_default():

在tensorflow2.0中,如果要解决上述问题,只需进行迁移:

sess = tf.compat.v1.keras.backend.get_session()
global sess
        with sess.as_default():
posted on 2020-04-07 15:46  槑槑匠  阅读(660)  评论(0编辑  收藏  举报