因為最近想學習機器學的相關知識,課程也看了幾個,書也讀了幾本,但是還是沒有什麼清晰的感覺,始終找不到門的鑰匙。好像黑崎一護成為死神時,身邊無數的絲帶,卻始終看不見真正的紅色的那條。
既然效果不佳,作為程式設計師,還是先從**開始吧。
因為一直做後台開發,都是對外提供服務。那麼同樣角度思考機器學習這事兒,除了通過演算法計算資料,生成模型外,最重要的應該還是提供能力吧,否則不就只是自嗨版的單機程式了。
既然這樣,那就應該先提供乙個服務,輸出機器學習的能力。
因為機器學習的語言特性,直接使用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...