在其他功能中使用Tensorflow会话时找不到变量

时间:2018-12-27 14:51:12

标签: python tensorflow flask

我正在创建一个Flask应用程序,我只想使用其变量恢复一次tensorflow会话,并在各种路径上使用它来进行预测,但它似乎不起作用。我创建了一个其构造函数恢复了交互式会话的类作为变量,该类还包含一个名为predict的函数,该函数尝试使用构造函数中描述的交互式会话来预测结果。以下代码是我初始化要在所有路由之间共享的对象的方法。

class MyServer(Flask):
def __init__(self, *args, **kwargs):
        super(MyServer, self).__init__(*args, **kwargs)
        self.testClass=TestClass()
app = MyServer(__name__)

这是我使用的路线的一个例子

@app.route('/')
def index():
    size_dict=app.testClass.test(saveName)
    return jsonify(size_dict)

但这会引发以下错误

ValueError: Variable Net_WT/block1/bn does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=tf.AUTO_REUSE in VarScope?

但是如果我初始化对象并在相同的路径中使用它,那么它会起作用

1 个答案:

答案 0 :(得分:0)

我不想回答自己的问题,但找到了解决方案,在TestClass的构造函数中,我在还原会话和变量后添加了self.graph = tf.get_default_graph()