【发布时间】:2019-07-04 21:23:43
【问题描述】:
我使用此配置在 Google AppEngine 上部署了一个小型 Web 服务(flask)app.yaml
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
我有一个端点来预测一个句子是否有毒,不幸的是调用端点有时真的很慢,有时很快。
当然,我只加载一次模型,而不是在每次请求时加载。启动烧瓶时,线程为 False。
list_classes = ["toxic", "severe_toxic", "obscene", "threat", "insult", "identity_hate"]
with open('tokenizer.pkl', 'rb') as handler:
tokenizer = pickle.load(handler)
model = load_model('m.hdf5')
app = Flask(__name__)
def prediction(sentence):
list_tokenized_train = tokenizer.texts_to_sequences([sentence])
maxlen = 200
X_t = pad_sequences(list_tokenized_train, maxlen=maxlen)
pred = model.predict(X_t)[0]
dic = {}
for idx, prob in enumerate(pred):
dic[list_classes[idx]] = float(prob)
return dict(sorted(dic.items(), reverse=True, key=lambda x: x[1]))
@app.route('/api/v1/predict/<comment>', methods=['GET'])
def predict(comment):
result = prediction(comment)
return make_response(jsonify({'Comment': comment, 'Result': result}), 200)
if __name__ == '__main__':
app.run(threaded=False)
我可以增强某些部分以获得更好的性能吗?
【问题讨论】:
-
你试过记录时间吗?你也能这么说吗?
标签: python google-app-engine machine-learning flask keras