搭建python機器學習restful服務

2021-09-19 03:21:16 字數 2109 閱讀 2015

因為最近想學習機器學的相關知識,課程也看了幾個,書也讀了幾本,但是還是沒有什麼清晰的感覺,始終找不到門的鑰匙。好像黑崎一護成為死神時,身邊無數的絲帶,卻始終看不見真正的紅色的那條。

既然效果不佳,作為程式設計師,還是先從**開始吧。

因為一直做後台開發,都是對外提供服務。那麼同樣角度思考機器學習這事兒,除了通過演算法計算資料,生成模型外,最重要的應該還是提供能力吧,否則不就只是自嗨版的單機程式了。

既然這樣,那就應該先提供乙個服務,輸出機器學習的能力。

因為機器學習的語言特性,直接使用pyhton開發服務。

經過一番查詢,確定技術棧:

flask + gunicorn + gevent

有些還在這基礎上通過supervisor守護進城服務,nginx做反向**,因為目前只是自己練習使用,暫時不用。

簡單介紹一下上面幾個元件。

flask:python實現的乙個輕量級微服務框架,基本功能簡單,可以通過外掛程式的方式加入其它功能。簡單且靈活。

gunicorn:支援wsgi協議的http容器服務,相容性強,使用簡單。

gevent:python併發框架,提供系統效能。

以上三個工具因為之前沒有用過,只是簡單了解了一下。後續會多總結。環境

anaconda3 + python3.6

因為以後可能會加入tensorflow的功能,目前tensorflow支援python3.7還有點問題。所以決定使用3.6版本。

安裝工具

anaconda3就是好用,直接查詢 flask,gunicorn,gevent 安裝即可。都是基本操作,基本無腦。

這裡要注意的一點是,因為使用zsh,多以要想直接使用工具,需要配置zsh的環境變數,把當前用的python環境配置到zsh。否則不能全域性使用命令工具。

新建工程

這一步其實真是比想象的簡單的多的多的多(對python的好感進一步提公升)……

from flask import flask

'/api/******api'

)def

isperson()

:return

'yeah, i\'m the machine who can compute you!'

if __name__ ==

'__main__'

:from werkzeug.contrib.fixers import proxyfix

)

這就是乙個微服務,想象spring的那一套,腦中回想起:「我們不一樣……不一樣…不一樣…」執行

這裡介紹一下gunicorn的引數。

-w:指定程序的數量,這裡配置2,所以下面的輸出裡啟動了兩個程序:44227,44228

-b:指定位址和埠號,如果不指定預設是 localhost:5000

-k: 指定gunicorn的work-class 模式,預設是sync同步模式,這裡通過gevent提公升併發能力。

如果出現下面輸出,那就說明服務啟動成功。

[44223] [info] starting gunicorn 19.9.0

[44223] [info] listening at: (44223)

[44223] [info] using worker: gevent

[44227] [info] booting worker with pid: 44227

[44228] [info] booting worker with pid: 44228

postman 直接訪問介面 http://localhost:8000/api/******api

返回:yeah, i』m the machine who can compute you!

說明沒啥問題。

乙個簡單的python微服務貌似就這麼結束了。

接下來還有更重要的工作,真正要做的才剛開始:

機器學習賦能,需要實現機器學習的演算法功能,實現計算能力

能力輸出,完善web框架的能力,達到企業級程度

別人的**越好用,自己的**可能就越難寫。機器學習這個領域雖然靠**落地,但是真正支撐它的還是底層的知識結構。如果將理解事物的思維方式限定在**層面,那對後面的學習還是有很大阻礙的。

所以**不是目的,這個一定要定位清楚。

Python 機器學習開發環境搭建

python 是門優雅實用的語言,語法簡單易學會,擁有極高可讀性和靈活性。近年來隨著機器學習和深度學習的蓬勃發展,python 和 r 語言成了資料探勘建模人員首選,python 尤為火熱。工欲善其事,必先利其器 對於想轉行資料探勘的同學來說,掌握好機器學習常用的 ide 和 python 基本語法...

Python 機器學習開發環境搭建

python 是門優雅實用的語言,語法簡單易學會,擁有極高可讀性和靈活性。近年來隨著機器學習和深度學習的蓬勃發展,python 和 r 語言成了資料探勘建模人員首選,python 尤為火熱。工欲善其事,必先利其器 對於想轉行資料探勘的同學來說,掌握好機器學習常用的 ide 和 python 基本語法...

python機器 python機器學習

熱詞系列 打卡 mark一下,以後看 每天打卡學習 1 python 基礎 bv1lt4y1u7un 2 python 高階 bv1jz411b7dh 3 python 資料庫 bv1pg4y1a7a7 4 python gui與坦克大戰 bv1je411f72o 5 python numpy bv...