背景:
在用keras/tensorflow训练好模型后,使用fastAPI部署服务时的两个常见错误
错误1:ValueError: Tensor Tensor(“dense_1/Softmax:0”, shape=(?, 5), dtype=float32) is not an element of this graph.
错误2:tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized val
解决方法:
from tensorflow.python.keras.backend import set_session
# 解决问题1
sess = tf.Session()
graph = tf.get_default_graph()
# tf2: graph = tf.compat.v1.get_default_graph()
# 解决问题2
set_session(sess)
model = models.load_model(model_path)
# 每次使用有关模型请求时
# for each request:
global sess
global graph
with graph.as_default():
set_session(sess)
model.predict(...)