python - 无法将 feed_dict 键解释为 Tensor:Tensor Tensor("Placeholder:0", shape=(135162, 6), dtype=float32) is not an element of this graph
问题描述
我使用 Keras 创建了一个机器学习模型进行情绪分析,并使用烧瓶创建了一个简单的 API,如下面的代码所示。对于第一个预测,它工作正常并在结果页面中给出输出,但是当我再次尝试时,它给了我上面的错误。
我见过一些类似的问题及其解决方案,但这些解决方案对我不起作用。我也尝试了不同的方法来保存和加载在 keras 上创建的模型,但无济于事。
#creating instance of the class
app=Flask(__name__)
@app.route('/')
def welcome():
return flask.render_template('welcome.html')
#prediction function
def ValuePredictor(to_predict):
model = pickle.load(open("model.pkl","rb"))
print("Loaded model from disk")
result = model.predict(to_predict)
tf.reset_default_graph()
return result
@app.route('/result',methods = ['POST'])
def result():
if request.method == 'POST':
to_predict_list = request.form.to_dict()
to_predict_list=list(to_predict_list.values())
test_tokens = tokenizer_obj.texts_to_sequences(to_predict_list)
test_pad = pad_sequences(test_tokens, maxlen = max_length, padding= 'post')
print(test_pad)
result = ValuePredictor(test_pad)
return render_template("result.html",prediction=result)
if __name__ == '__main__':
app.run(debug= True, port = 5000)
我希望输入文本然后在结果页面中接收结果,然后返回主页并输入新文本并获得另一个结果,依此类推。
目前它第一次工作正常,然后在之后的时间以上给出错误。
解决方案
在代码中添加以下内容即可解决!
from keras import backend as K
K.clear_session()
我在预测之后添加了这个:
def ValuePredictor(to_predict):
model = pickle.load(open("model.pkl","rb"))
print("Loaded model from disk")
result = model.predict(to_predict)
K.clear_session()
return result
推荐阅读
- r - R Dplyr:如何将未分组数据框中的列添加到分组数据框中并保留分组?
- reactjs - activeClassName 的 css 不适用于反应
- html - 向数据列表添加选项
- adal - 未在 Azure API 应用程序中获取令牌 - ADAL
- javascript - Chartjs - 将附加数据插入图表工具提示
- c++ - 如何只打印辅音?
- sap - 如何将 Hybris 与 SAP 身份管理集成?
- android - NoSuchMethodError,迭代器在 null 上调用
- javascript - How do I add linebreaks in a InnerHTML javascript
- javascript - Chrome 内存快照中的保留大小 - 究竟保留了什么?