是時候給AI減負了,Python五大AI庫推薦
機器學(xué)習(xí)是件令人興奮的事,但一系列工作是復(fù)雜和困難的。作為一名開發(fā)人員,要學(xué)習(xí)的工具實在是太多太雜了。幸運的是,Python是一種廣泛應(yīng)用于大數(shù)據(jù)和機器學(xué)習(xí)各類工具上的語言,使用范圍極廣。機器學(xué)習(xí)通常涉及大量手動提升的工作,組裝工作流和管道、設(shè)置數(shù)據(jù)源以及在內(nèi)部和云部署的資源之間來回分流。以下這五大Python庫可幫助加快數(shù)據(jù)管道,例如,使用AWS Lambda可對計算量較大的作業(yè)進行碎片處理,使用TensorFlow模型可減輕TensorFlow的負載。
PyWren
一個具有強大前提的簡單包,PyWren允許將基于Python運行的科學(xué)計算工作負載作為AWS Lambda函數(shù)的多個實例。The New Stack中項目的配置文件描述了PyWren使用AWS Lambda作為并行處理系統(tǒng),主要處理不需要消耗大量內(nèi)存或存儲的小項目。
PyWren的一個缺點是lambda函數(shù)最多不能運行超過300秒。如果你的工作只需要幾分鐘,在數(shù)據(jù)集上運行幾千次,PyWren可能是一個很好的選擇,它能夠以在用戶硬件上不可用的規(guī)模平行化云端工作。
Tfdeploy
谷歌的TensorFlow框架在機器學(xué)習(xí)領(lǐng)域脫穎而出,現(xiàn)在已經(jīng)有一個完整的1.0版本了。用戶經(jīng)常面臨一個問題:如何在不使用TensorFlow本身的情況下,利用TensorFlow訓(xùn)練模型呢?
Tfdeploy是這個問題的部分答案。它將一個訓(xùn)練有素的TensorFlow模型導(dǎo)出為“一個簡單的基于NumPy的可調(diào)用模型”,意味著該模型可以在Python中使用Tfdeploy和NumPy數(shù)學(xué)和統(tǒng)計庫作為唯一依賴。在TensorFlow中可以執(zhí)行的大多數(shù)操作也可以在Tfdeploy中執(zhí)行,可以通過標準Python隱喻方式(例如重載類)來擴展庫行為。
壞消息是:Tfdeploy不支持GPU加速,如果使用NumPy可克服這一點就好了。Tfdeploy的創(chuàng)建者建議使用gNumPy項目作為可能的替代品。
Luigi
批量處理通常只是數(shù)據(jù)堆處理的一部分,而且還必須將所有任務(wù)串在一起成為類似工作流程的東西。Luigi由Spotify創(chuàng)建,定位于“解決運行批處理過程相關(guān)的所有管道問題”。
使用Luigi,開發(fā)人員可以采取幾個不同的、與數(shù)據(jù)處理不相關(guān)的任務(wù)——Hive查詢,Java中的Hadoop任務(wù),Scala中的Spark任務(wù),從數(shù)據(jù)庫中轉(zhuǎn)儲表——并創(chuàng)建一個端到端運行它們的工作流—結(jié)束。任務(wù)及其依賴關(guān)系的完整描述作為Python模塊創(chuàng)建,而不作為XML配置文件或其他數(shù)據(jù)格式創(chuàng)建,因此可以集成到其他以Python為中心的項目中。
Kubelib
如果你使用Kubernetes作為機器學(xué)習(xí)任務(wù)的編排系統(tǒng),***你想要的肯定是使用Kubernetes來解決更多的問題,而不是帶來許多問題。Kubelib為Kubernetes提供了一組Pythonic接口,最初是用Jenkins script作為腳本。但是它可以在沒有Jenkins的情況下使用,它可以完成kubectl CLI或Kubernetes API暴露出的一切事情。
PyTorch
不要忘記這個最近發(fā)布的、高調(diào)的Python新產(chǎn)品,一個實現(xiàn)Torch機器學(xué)習(xí)框架的工具。PyTorch不僅將Torch移植到了Python,而且增加了許多其他便利,如GPU加速和一個允許使用共享內(nèi)存(用于跨多個內(nèi)核分區(qū)作業(yè))進行多處理的庫。最重要的是,它可以為NumPy中的一些未加速功能提供GPU加速替換。