amd 深度学习模型部署_Web服务部署深度学习模型-续集
在上一篇中,本人介紹了如何使用Web服務(wù)部署深度學(xué)習(xí)模型,見知乎鏈接:劉聰NLP:Web服務(wù)部署深度學(xué)習(xí)模型。
有同學(xué)提問:“是否可以在web上有輸入數(shù)據(jù)的接口,通過深度學(xué)習(xí)模型的計(jì)算數(shù)據(jù)的結(jié)果,將輸出結(jié)果在web端顯示。”
本人回答:當(dāng)然可以了,現(xiàn)在我就來帶著大家實(shí)現(xiàn)這一需求。完成之后,我們就變成全棧工程師了,哈哈哈哈~~~~
如果在web上有輸入數(shù)據(jù)的接口,那面我們應(yīng)該有一個(gè)頁(yè)面,來輸入數(shù)據(jù);我們依然以文本分類為例(一法通,則萬法通),那么就需要先寫一個(gè)html頁(yè)面。
<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"><title>Classification</title></head><body><div align="center" style="margin-top:80px"><img src="{{url_for('static', filename='lcong.jpg') }}" alt="lcong" height = "200px" /></div><div align="center" style="margin-top:10px"><form method="POST" name = "form1"><input type="text" name = "News" placeholder = "Your news here" value="{{ var }}" style="width:400px; height:200px;"/><input type="submit" value = "Get Answer" /><input type="text" name = "result" placeholder = "Your label appears here" readonly="readonly" value="{{ result }}" style="width:400px; height:40px;"/></form></div></body> </html>由于,本人不是很精通web界面的編寫,因此就隨便寫了一個(gè),有點(diǎn)丑(不喜勿噴),就將就看吧,主要還是介紹思路及流程。如果有精通之人,可以自行修改,修改成自己喜歡的樣子。頁(yè)面如下圖:
左邊文本框,輸入新聞文本;點(diǎn)擊“Get Label”按鈕,可以獲得該新聞所屬的類別;最終顯示在右邊文本框中。
(劃重點(diǎn))接下來,我們開始使用web服務(wù)掛起模型。通俗地講,其實(shí)本人就是通過flask框架,搭建了一個(gè)web服務(wù),來獲取外部的輸入;并且使用掛載的模型進(jìn)行預(yù)測(cè);最后將預(yù)測(cè)結(jié)果通過web服務(wù)傳出。
from gevent import monkey monkey.patch_all() from flask import Flask, request, render_template from gevent import wsgi import json from ClassificationModel import ClassificationModeldef start_sever(http_id, port, gpu_id, vocab_file, gpu_memory_fraction, model_path, max_seq_length):model = ClassificationModel()model.load_model(gpu_id, vocab_file, gpu_memory_fraction, model_path, max_seq_length)print("load model ending!")app = Flask(__name__)@app.route('/')def index():return "This is News Classification Model Server"@app.route('/news-classification-from-page', methods=["GET", 'POST'])def response_request_from_page():if request.method == 'POST':text = request.form.get('News')label, label_name = model.predict(text)return render_template("index.html", result=label_name, var1=text)return render_template("index.html")server = wsgi.WSGIServer((str(http_id), port), app)server.serve_forever()其中,http_id為web服務(wù)的地址;port為端口號(hào);gpu_id、vocab_file、gpu_memory_fraction、model_path和max_seq_length為加載模型所需要的參數(shù),詳細(xì)見上一篇文檔介紹。
************************************************************************************
最后我們?cè)诜?wù)器上輸入對(duì)應(yīng)http地址及字段,如圖:
接下來,在左邊框內(nèi)輸入新聞,點(diǎn)擊Get Label按鈕,得到結(jié)果,如圖:
其中,有兩個(gè)要注意的事項(xiàng);(1)html文件需要放入templates文件夾下;(2)html中所顯示的圖片要放到static文件夾下。
以上就是通過web服務(wù)部署深度學(xué)習(xí)模型的全部?jī)?nèi)容,喜歡的同學(xué)還請(qǐng)多多點(diǎn)贊~~~~~
廣告時(shí)間,推薦幾篇本人之前寫的一些文章:
劉聰NLP:短文本相似度算法研究
劉聰NLP:閱讀筆記:開放域檢索問答(ORQA)
劉聰NLP:Web服務(wù)部署深度學(xué)習(xí)模型
劉聰NLP:NEZHA(哪吒)論文閱讀筆記
劉聰NLP:UniLM論文閱讀筆記
劉聰NLP:檢索系列文章之DeepCT論文筆記
喜歡的同學(xué),可以關(guān)注一下專欄,關(guān)注一下作者,還請(qǐng)多多點(diǎn)贊~~~~~~
總結(jié)
以上是生活随笔為你收集整理的amd 深度学习模型部署_Web服务部署深度学习模型-续集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: easyexcel注解样式无效_【Jav
- 下一篇: 设置横坐标刻度_是不是快被Excel的时