5個常用的機器學習python庫
前言
機器學習的工作內容往往復雜枯燥又困難——通過大量重複工作進行提升必不可少:
彙總工作流及傳輸渠道、設定資料來源以及在內部部署和雲部署的資源之間來回分流。
所以使用工具提升你的工作效率實在很關鍵,而且像這樣的工具越多越好。好在你學的是Python,作為一門威力巨大的工具語言,Python可以給你提供足夠的輔助工具,讓你在大資料和機器學習專案中游刃有餘。
唯一的問題在於Python海量的資源庫讓患有選擇困難症的你難以取捨,因此糖豆貼心的給你找來了目前評價最高的五個Python庫。
Python學習資料或者需要程式碼、視訊加Python學習群:960410445
1. PyWren
專案地址:https://github.com/ericmjonas/pywren
PyWren專案
PyWren,簡單而強大,用於進行基於Python的科學計算工作。
專案 At The New Stack 的簡介這樣描述 PyWren:
把 AWS Lambda 作為一個巨大的平行處理系統,以處理那些可被切割成諸多小任務的專案,同時還可以節約很多記憶體和硬碟空間。
Lambda 函式的一個缺點是執行時間最長不能超過 300 秒。
但是,如果你有一個只花費幾分鐘就能完成卻需要在資料集中執行數千次的工作,那麼 PyWren 也許是一個好選擇,它可以在雲端完成一種使用者硬體上不可用的規模平行化的工作。
2. Tfdeploy
專案地址:https://github.com/riga/tfdeploy
Tfdeploy專案
如果你需要使用基於谷歌的 TensorFlow 框架的訓練模型卻不想使用框架本身的話,Tfdeploy可以幫你。
藉由 Tfdeploy,可以在 Python 中使用模型,而且僅僅需要Numpy 的數學和統計庫作為支撐。
幾乎所有能在 TensorFlow 上跑的執行也能在 Tfdeploy 上跑,而且你可以通過標準 Python 隱喻方式來延伸庫的行為(比如,超載一個類別)。
但是,Tf 部署並不支援 GPU 加速。
3.Luigi
專案地址:https://github.com/spotify/luigi
Luigi專案
編寫成批作業通常只是處理海量資料的其中一步:你也不得不將所有這些工作串聯起來,做成類似工作流程的東西。
Luigi 是 Spotify 打造的,用於解決所有通常與長期執行成批處理作業有關的管道問題。
有了 Luigi,研發人員就可以從事幾個很難、與資料無關的任務處理——「 Hive 詢問,在 Jave 上完成的 Hadoop 任務, Scala 上的 Spark 任務,從資料庫中匯出表格」——創造一個端到端執行它們的工作流。
對任務的整個描述以及依存性被打造為 Python 模組,和 XML 配置文件或其他資料形式不同,因此,可以被組合到其他以 Python 為中心的專案中去。
4.Kubelib
專案地址:https://github.com/safarijv/kubelib
Kubelib專案
如果你採用 Kubernetes 作為完成機器學習工作的編排系統(orchestration system),那你可能要小心的維護以免其自身執行的BUG比它能解決的問題都多。
Kubelib 為 Kubernetes 提供了一系列的 Python 介面,雖說需要 Jekins ing 作為支援,但沒有 Jenkins 的情況下也能夠使用。
它能夠完成 暴露在 kubectl CLI 或者 Kubernetes API 中的所有事。
5.PyTorch
專案地址:https://github.com/pytorch/pytorch
PyTorch專案
最後一個成員還比較新,但卻已經制造了足夠大的聲勢:Python 庫新成員 Pytorch,這一個Torch 機器學習框架工具。
PyTorch 不僅為 Torch 添加了 Python 埠,也增加了許多其他的便利,比如 GPU 加速,共享記憶體完成多重處理(multiprocessing,特別是多核上隔離開的工作。)
最大的亮點在於它們能為 Numpy 中的無加速功能提供 GPU 驅動的替代選擇。