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