怎么把python模型部署到线上_如何将机器学习模型成功部署到.Net环境中
【IT168 技術(shù)】Python和R語言是在數(shù)據(jù)工程師間最流行的編程語言,但是,它并不能適用于應(yīng)用程序構(gòu)建的所有部分。這也就是你為什么有時需要找到一種方法,將Python或R編寫的機(jī)器學(xué)習(xí)模型部署到基于.NET等語言的環(huán)境中。
本文將為大家展示如何使用Web API將機(jī)器學(xué)習(xí)模型集成到.NET編寫的應(yīng)用程序中。
Enter: Flask
我們可以把Flask作為共享和host機(jī)器學(xué)習(xí)預(yù)測的一種方式,然后我們選擇著名的來自 Kaggle competition的Titanic 數(shù)據(jù)集。首先,創(chuàng)建一個新文件并將其稱為titanic_app.py(或任何你想要的名字),導(dǎo)入并初始化Flask應(yīng)用程序,然后在底部啟動服務(wù)器,在中間留出空間,以便稍后添加模型和路線。
請注意,我們指定了希望應(yīng)用程序運(yùn)行的主機(jī)和端口。
創(chuàng)建和訓(xùn)練模型
加載Titanic 數(shù)據(jù)集,并在其上創(chuàng)建一個模型:
制作一個簡單的API
這一部分是最有趣的,現(xiàn)在我們有了 PREDICTOR,我們需要一些標(biāo)準(zhǔn)來衡量做出的預(yù)測是否有價值。一種方法是從URL參數(shù)中獲取信息,這些參數(shù)是在URL的?之后,例如你導(dǎo)航到http:// localhost:4000 / predict?pclass = 1&sex = 1&age = 18&fare = 500&sibsp = 0,則Flask可以為您檢索該數(shù)據(jù)。
我們寫一條路線來做到這一點(diǎn):
保存文件并啟動應(yīng)用程序,你的模型現(xiàn)在已經(jīng)有一個簡單的API。
部署到.NET環(huán)境
在.NET環(huán)境中部署Flask有很多選擇,它大大依賴于基礎(chǔ)架構(gòu)的選擇,下面我們就來看看如何使用Microsoft Azure部署到IIS環(huán)境。
我們先假設(shè)你已經(jīng):
創(chuàng)建了一個Azure Cosmos數(shù)據(jù)庫;
創(chuàng)建了一個Flask Web應(yīng)用程序(如前所述);
熟悉Azure和Visual Studio;
如果你已經(jīng)正確配置了環(huán)境,那么就可以將Web應(yīng)用程序部署到Azure。這可以通過創(chuàng)建一個 web.config 文件來更新Web服務(wù)器上的文件來匹配實(shí)例中的文件。為此,請執(zhí)行以下步驟:
在Visual Studio解決方案資源管理器中,右鍵單擊該項(xiàng)目并選擇添加 > 新建項(xiàng)目。在出現(xiàn)的對話框中,選擇Azure web.config(快速CGI)模板,然后選擇確定。這將使web.config在項(xiàng)目的根目錄中創(chuàng)建一個 文件。
修改 web.config 以使路徑與Python安裝相匹配。例如,對于Python 2.7 x64,條目應(yīng)該如下所示:
設(shè)置 WSGI_HANDLER 在進(jìn)入 web.config 到 tutorial.app 以配合項(xiàng)目名稱,如下圖所示:
在Visual Studio Solution Explorer中,展開tutorial文件夾,右鍵單擊靜態(tài)文件夾,選擇Add > New Item,選擇Azure靜態(tài)文件web.config 模板,然后選擇OK。此操作會在靜態(tài)文件夾中創(chuàng)建另一個web.config,可禁用該文件的Python processing。該配置將靜態(tài)文件的請求發(fā)送到默認(rèn)Web服務(wù)器,而不是使用Python應(yīng)用程序。
保存文件,然后右鍵單擊解決方案資源管理器中的項(xiàng)目(確保您還沒有在本地運(yùn)行),然后選擇發(fā)布。
在“ 發(fā)布”對話框中,選擇“ Microsoft Azure應(yīng)用程序服務(wù)”,選擇“ 新建”,然后單擊“ 發(fā)布”。
在“ 創(chuàng)建應(yīng)用程序服務(wù)”對話框中,輸入您的Web應(yīng)用程序的名稱以及訂閱,資源組和應(yīng)用程序服務(wù)計劃。然后點(diǎn)擊創(chuàng)建。
幾秒鐘后,Visual Studio完成將文件復(fù)制到服務(wù)器,并在http://.azurewebsites.net/頁面上顯示以下錯誤消息:“由于發(fā)生內(nèi)部服務(wù)器錯誤,無法顯示頁面”。
在Azure門戶中,打開新的應(yīng)用程序服務(wù)帳戶。在導(dǎo)航菜單中,向下滾動到開發(fā)工具部分,選擇擴(kuò)展,然后單擊添加。
在“ 選擇擴(kuò)展”頁面中,向下滾動到最新的Python 2.7安裝并選擇x86或x64位選項(xiàng),然后單擊“ 確定”接受法律條款。
使用Kudu控制臺,你可以在https://.scm.azurewebsites.net/DebugConsole中找到該控制臺,以安裝應(yīng)用程序requirements.txt 文件中列出的軟件包 。在Kudu診斷控制臺中,導(dǎo)航到D:\ home \ Python27中的 Python文件夾,然后按照Kudu控制臺部分中所述運(yùn)行以下命令:
D:\home\Python27>python -m pip install --upgrade -r /home/site/wwwroot/requirements.txt
按下重新啟動按鈕來安裝新軟件包之后,在Azure門戶中重新啟動App Service 。
完整配置服務(wù)器環(huán)境后,刷新瀏覽器中的頁面,即可顯示W(wǎng)eb應(yīng)用程序。
總結(jié)
以上是生活随笔為你收集整理的怎么把python模型部署到线上_如何将机器学习模型成功部署到.Net环境中的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断三个数是否能构成三角形_三角形的面积
- 下一篇: 红米android版本,微信红米低版本下