5個(gè)開(kāi)源Python庫(kù),讓機(jī)器學(xué)習(xí)更簡(jiǎn)單
機(jī)器學(xué)習(xí)令人興奮,但實(shí)際操作卻很困難也很復(fù)雜。它涉及到很多手動(dòng)操作,如集合工作流和管道,設(shè)置數(shù)據(jù)源,以及在內(nèi)部部署與云部署的資源之間切換等。
Python 是一款強(qiáng)大的工具語(yǔ)言,被廣泛應(yīng)用在大數(shù)據(jù)和機(jī)器學(xué)習(xí)之中。以下推薦了 5 個(gè) Python 庫(kù),幫你疏通機(jī)器學(xué)習(xí)之路。
PyWren
PyWren 允許你將基于 Python 的科學(xué)計(jì)算工作負(fù)載作為多個(gè) AWS Lambda 函數(shù)來(lái)運(yùn)行。The New Stack 上一份對(duì)該項(xiàng)目的描述是,使用 AWS Lamba 作為強(qiáng)大的并行處理系統(tǒng),處理可以切分為多個(gè)小任務(wù)的項(xiàng)目,從而不用占據(jù)大量的內(nèi)存或存儲(chǔ)空間。
此項(xiàng)目有個(gè)缺點(diǎn)是 lambda 函數(shù)運(yùn)行不能超過(guò) 300 秒。但如果是一份只需幾分鐘就能完成的工作,并且要在數(shù)據(jù)集中運(yùn)行上千次,那 PyWren 會(huì)是不錯(cuò)的選擇,它能在一定程度上將用戶硬件上無(wú)法運(yùn)行的工作平行化至云端。
Tfdeploy
Google 的 TensorFlow 框架在發(fā)布了 1.0 版本之后進(jìn)入輝煌時(shí)期,這時(shí)人們要問(wèn)了:如何才能在不使用 TensorFlow 本身的情況下,使用在 TensorFlow 上訓(xùn)練的模型?
Tfdeploy 能給你答案。它將經(jīng)過(guò)訓(xùn)練的 TensorFlow 模型導(dǎo)出為“簡(jiǎn)單的基于 NumPy 的可調(diào)用對(duì)象”,即該模型可以在 Python 中使用,并以 Tfdeploy 和 NumPy math-and-stats 庫(kù)為唯一的依賴關(guān)系。大多數(shù)可以在 TensorFlow 中執(zhí)行的操作也可以在 Tfdeploy 中執(zhí)行,你可以通過(guò)標(biāo)準(zhǔn)的 Python metaphors 來(lái)擴(kuò)展庫(kù)的行為(如,重載類)。
Luigi
編寫(xiě)批量作業(yè)只是處理數(shù)據(jù)堆的一部分,你還需要將所有作業(yè)串起來(lái)生成類似工作流和管道的東西。
Luigi 由 Spotify 創(chuàng)建,用于“解決與長(zhǎng)期運(yùn)行成批處理作業(yè)有關(guān)的管道問(wèn)題”。開(kāi)發(fā)者可以通過(guò) Luigi 采用多個(gè)不同且不相關(guān)的數(shù)據(jù)處理任務(wù),如,Hive 查詢,Java 中的 Hadoop 任務(wù),Scala 中的 Spark 任務(wù),從數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ) table 等,還可以創(chuàng)建一個(gè)端到端運(yùn)行它們的工作流。
對(duì)任務(wù)的整個(gè)描述以及依存性被打造為 Python 模塊,而不是作為 XML 配置文件或其他數(shù)據(jù)格式創(chuàng)建,因此可以集成到其他以 Python 為中心的項(xiàng)目中。
Kubelib
如果你使用 Kubernetes 作為機(jī)器學(xué)習(xí)作業(yè)的編排系統(tǒng),那么你會(huì)祈禱 Kubernetes 產(chǎn)生的問(wèn)題不要比解決的問(wèn)題還多。Kubelib 為 Kubernetes 提供了一組 Pythonic 接口,最初是為了協(xié)助 Jenkins 腳本工作。但是它可以在沒(méi)有 Jenkins 的情況下使用,它可以處理 kubectl CLI 或 Kubernetes API 暴露的一切服務(wù)。
PyTorch
PyTorch 是一個(gè) Torch7 團(tuán)隊(duì)開(kāi)源的 Python 優(yōu)先的深度學(xué)習(xí)框架,提供兩個(gè)高級(jí)功能:強(qiáng)大的 GPU 加速 Tensor 計(jì)算(類似 numpy),構(gòu)建基于 tape 的自動(dòng)升級(jí)系統(tǒng)上的深度神經(jīng)網(wǎng)絡(luò)。你可以重用你喜歡的 python 包,如 numpy、scipy 和 Cython ,在需要時(shí)擴(kuò)展 PyTorch。
通常使用 PyTorch 是將其作為 numpy 的替代品,以使用強(qiáng)大的 GPU 能力,或作為一個(gè)深度學(xué)習(xí)研究平臺(tái),提供***的靈活性和速度。