我正在使用外部模块进行张量流工作,尝试从pickle文件中的flask应用程序中使用会话模块时遇到会话管理问题,有人可以帮助我
ValueError:Tensor(“ TensorSliceDataset:0”,shape =(),dtype = variant) 必须来自与Tensor(“ Iterator:0”,shape =()相同的图, dtype = resource)。
示例代码结构
AB
有关错误的更多详细信息
from io import StringIO
import flask
import pandas as pd
import tensorrec as tr
import tensorflow as tf
class ScoringService(object):
model = None
model_path = 'path for pickle file'
@classmethod
def get_model(cls):
if cls.model == None:
cls.model = tr.TensorRec.load_model(model_path)
return cls.model
@classmethod
def get_reco(cls, model,use_ft, ite_ft):
tf.reset_default_graph()
predictions = model.predict(use_ft, ite_ft)
return predictions
@classmethod
def predict(cls, input):
clf = cls.get_model()
n_reco_test = cls.get_reco(clf, input,use_ft, ite_ft)
return n_reco_test
# The flask app for serving predictions
app = flask.Flask(__name__)
@app.route('/invocations', methods=['POST'])
def transformation():
data = None
# Convert from CSV to pandas
if flask.request.content_type == 'text/csv':
data = flask.request.data.decode('utf-8')
s = StringIO(data)
data = pd.read_csv(s, header=None)
else:
return flask.Response(response='This predictor only supports CSV data', status=415, mimetype='text/plain')
# Do the prediction
predictions = ScoringService.predict(data)
return flask.Response(response=predictions, status=200,mimetype='text/csv')