flask + keras, tensorflow部署深度学习模型

报错信息类似

ValueError: Tensor Tensor("predictions/Softmax:0", shape=(?, 1000), dtype=float32) is not an element of this graph.

 

解决方案参见

【flask中调用tensorflow,keras深度模型的坑!】

   https://blog.csdn.net/qq_36387683/article/details/91872500

【如何用Flask部署Keras深度学习模型】

   https://zhuanlan.zhihu.com/p/47349497

我的解决方法

方法一:载入模型时,给个例子预测一次就没有报错信息了(固定了图),但是代码看起来不美观。

sim = load_model(bin_dir + "model.bin")
list_file = open(bin_dir + '/model_test.pkl','rb')
test_x = pickle.load(list_file)
test_y = sim.predict(test_x)[:, 0]

方法二:建立全局图

import tensorflow as tf
import pandas as pd
global sim_graph
sim_graph = tf.get_default_graph()
sim_model = load_model(bin_dir + "model.bin")

def predict(data):
    with sim_graph.as_default():
        test_y = sim_model.predict(data)

上面2种方法完美解决。

你可能感兴趣的:(python学习)