(點(diǎn)擊上方公眾號(hào),可快速關(guān)注)
編譯:伯樂(lè)在線-飛哥的咖啡,英文:dashbouquet
盡管人工智能(AI )已經(jīng)存在很長(zhǎng)時(shí)間了,但因?yàn)檫@一領(lǐng)域取得的巨大進(jìn)步,它最近成為了一個(gè)流行詞。
AI 曾被認(rèn)為是狂熱愛(ài)好者和天才的專屬領(lǐng)域,但由于各種庫(kù)和框架的蓬勃發(fā)展,它慢慢成為了一個(gè)不那么排外的 IT 領(lǐng)域,并吸引了大量的人才投入其中。
在本文中,我們將介紹那些用于 AI 開發(fā)的高質(zhì)量庫(kù),并談?wù)勊鼈兊膬?yōu)缺點(diǎn),以及特性。
現(xiàn)在,讓我們進(jìn)入并探索 AI 庫(kù)的世界吧。
TensorFlow:“使用數(shù)據(jù)流程圖對(duì)可拓展的機(jī)器學(xué)習(xí)進(jìn)行計(jì)算”
語(yǔ)言:C++
84 725 ★
初接觸 AI 時(shí),你聽(tīng)說(shuō)的首批框架應(yīng)該包含了谷歌的 TensorFlow。
TensorFlow 是一個(gè)使用數(shù)據(jù)流程圖進(jìn)行數(shù)值計(jì)算的開源軟件。這個(gè)不錯(cuò)的框架因其架構(gòu)而聞名,它允許在任何 CPU 或 GPU 上進(jìn)行計(jì)算,不管是桌面、服務(wù)器,還是移動(dòng)設(shè)備。它可在 Python 編程語(yǔ)言中使用。
TensorFlow 主要是通過(guò)數(shù)據(jù)層進(jìn)行排序,而我們可以調(diào)用節(jié)點(diǎn),并根據(jù)所得到的信息進(jìn)行決策。
優(yōu)點(diǎn):
使用簡(jiǎn)單易學(xué)的語(yǔ)言,如 Python。
使用計(jì)算圖進(jìn)行抽象。
可以使用 TensorBoard 獲得可視化。
缺點(diǎn):
運(yùn)行速度慢,因?yàn)?Python 不是最快的語(yǔ)言。
缺乏許多預(yù)訓(xùn)練的模型。
不完全開源。
Microsoft CNTK:“開源的深度學(xué)習(xí)工具包”
語(yǔ)言:C++
13 516 ★
我們是否可以將它看作是微軟對(duì)谷歌 TensorFlow 的回應(yīng)?
微軟的CNTK(計(jì)算網(wǎng)絡(luò)工具包)是一個(gè)用來(lái)增強(qiáng)模塊化和保持計(jì)算網(wǎng)絡(luò)分離的庫(kù),提供學(xué)習(xí)算法和模型描述。
在需要大量服務(wù)器進(jìn)行計(jì)算的情況下,CNTK 可以同時(shí)利用多臺(tái)服務(wù)器。
據(jù)說(shuō) CNTK 在功能上接近谷歌的 TensorFlow,但速度比對(duì)方要快一些。
優(yōu)點(diǎn):
高度靈活。
允許分布式訓(xùn)練。
缺點(diǎn):
它由一種新的語(yǔ)言——NDL(網(wǎng)絡(luò)描述語(yǔ)言)實(shí)現(xiàn)。
缺乏可視化。
Theano:“數(shù)值計(jì)算庫(kù)”
語(yǔ)言:Python
7 550 ★
作為 TensorFlow 的強(qiáng)有力競(jìng)爭(zhēng)對(duì)手,Theano 是一個(gè)強(qiáng)大的 Python 庫(kù),它允許使用高效多維數(shù)組進(jìn)行數(shù)值計(jì)算。
它不使用 CPU,而是透明地使用 GPU,用于數(shù)據(jù)密集型計(jì)算,所以效率很高。
因此,在大約 10 年內(nèi),Theano 一直被用于大規(guī)模的數(shù)據(jù)密集型計(jì)算。
然而,在 2017 年 9 月 28 日當(dāng)日,開發(fā)團(tuán)隊(duì)宣稱,將在 2017 年 11 月 15 日發(fā)布 1.0 版后,停止對(duì)它的主要開發(fā)。
但這并沒(méi)有削弱它的強(qiáng)大實(shí)力,你仍可以使用它,隨時(shí)進(jìn)行深入學(xué)習(xí)的研究。
優(yōu)點(diǎn):
對(duì) CPU 和 GPU 進(jìn)行了適當(dāng)優(yōu)化。
高效的數(shù)值計(jì)算任務(wù)。
缺點(diǎn):
與其他庫(kù)相比,原始的 Theano 有點(diǎn)兒低級(jí)。
需要與其他庫(kù)一起使用,以獲得較高級(jí)的抽象。
在 AWS 上使用有點(diǎn)小 Bug。
Caffe:“應(yīng)對(duì)深入學(xué)習(xí)的快速開放架構(gòu)”
語(yǔ)言:C++
22 111 ★
Caffe 是一個(gè)強(qiáng)大的深度學(xué)習(xí)框架。
和這個(gè)列表中的其他框架一樣,它對(duì)于深入學(xué)習(xí)的研究而言,是非常快速和有效的。
使用 Caffe,你可以輕易地構(gòu)建一個(gè)用于圖像分類的 CNN(卷積神經(jīng)網(wǎng)絡(luò))。它在 GPU 上運(yùn)行良好,使得運(yùn)行速度非常快。
上圖是 Caffe 的主類。
優(yōu)點(diǎn):
可以與 Python 和 MATLAB 綁定使用。
高性能。
無(wú)需編寫代碼,即可訓(xùn)練模型。
缺點(diǎn):
對(duì)遞歸網(wǎng)絡(luò)支持不好。
對(duì)新架構(gòu)來(lái)說(shuō)不是很好。
Keras:“針對(duì)人類的深度學(xué)習(xí)”
語(yǔ)言:Python
23 711 ★
Keras 是一個(gè)用 Python 編寫的開源神經(jīng)網(wǎng)絡(luò)庫(kù)。
不似TensorFlow、CNTK、Theano、Keras 這種端到端(End-to-End)的機(jī)器學(xué)習(xí)框架,
相反,它是一個(gè)接口,提供了高層次的抽象,使得神經(jīng)網(wǎng)絡(luò)的配置變得更加簡(jiǎn)單,而不必考慮所在的框架。
谷歌的 TensorFlow 目前支持 Keras 作為后端,而微軟的 CNTK 也將在短時(shí)間內(nèi)獲得支持。
優(yōu)點(diǎn):
它對(duì)用戶友好,易于上手。
高度拓展。
可以在 CPU 或 GPU 上無(wú)縫運(yùn)行。
完美兼容 Theano 和 TensorFlow。
缺點(diǎn):
不能有效地作為一個(gè)獨(dú)立的框架來(lái)使用。
Torch:“開源機(jī)器學(xué)習(xí)庫(kù)”
語(yǔ)言:C
7 584 ★
Torch 是一個(gè)用于科學(xué)計(jì)算和數(shù)值計(jì)算的開源機(jī)器學(xué)習(xí)庫(kù)。
它是一個(gè)基于 Lua 編程語(yǔ)言(終于不再是 Python)的庫(kù)。
通過(guò)提供大量算法,使得深入學(xué)習(xí)的研究更加容易,并提高了效率和速度。它有一個(gè)強(qiáng)大的 N 維數(shù)組,幫助進(jìn)行類似切片和索引這樣的計(jì)算,并提供線性代數(shù)程序和神經(jīng)網(wǎng)絡(luò)模型。官網(wǎng):http://torch.ch/
優(yōu)點(diǎn):
高度靈活。
速度快,效率高。
大量的預(yù)訓(xùn)練模型可用。
缺點(diǎn):
說(shuō)明文檔不夠清晰。
缺乏立即使用的即插即用代碼。
它基于一個(gè)不怎么流行的編程語(yǔ)言 Lua。
Accord.NET:針對(duì) .NET 的機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺(jué)、統(tǒng)計(jì)學(xué)和通用科學(xué)計(jì)算
語(yǔ)言:C#
2 424 ★
這是為 C# 程序員準(zhǔn)備的。
Accord.NET 框架是一個(gè) .NET 機(jī)器學(xué)習(xí)框架,使得音頻和圖像的處理變得更加簡(jiǎn)單。
該框架可以有效地解決數(shù)值優(yōu)化、人工神經(jīng)網(wǎng)絡(luò),甚至給出了可視化的特征。此外,Accord.NET 對(duì)計(jì)算機(jī)視覺(jué)和信號(hào)處理具有強(qiáng)大的功能,并且易于算法實(shí)現(xiàn)。
優(yōu)點(diǎn):
它擁有一個(gè)龐大且活躍的開發(fā)團(tuán)隊(duì)。
說(shuō)明文檔非常不錯(cuò)。
高質(zhì)量的可視化。
缺點(diǎn):
這不是一個(gè)非常流行的框架。
與 TensorFlow 相比,速度慢
Spark MLlib:可擴(kuò)展的機(jī)器學(xué)習(xí)庫(kù)
語(yǔ)言:Scala
15 708 ★
Apache 的 Spark MLlib 是一個(gè)具有高度拓展性的機(jī)器學(xué)習(xí)庫(kù)。
它在 Java、Scala、Python 甚至 R 語(yǔ)言中都非常有用,因?yàn)樗褂?Python 和 R 中類似 Numpy 這樣的庫(kù),能夠進(jìn)行高效的交互。
MLlib 可以很容易地插入 Hadoop 工作流程中。它提供了機(jī)器學(xué)習(xí)算法,如分類、回歸、聚類等。
這個(gè)強(qiáng)大的庫(kù)在處理大規(guī)模的數(shù)據(jù)時(shí),速度非???。
優(yōu)點(diǎn):
對(duì)于大規(guī)模數(shù)據(jù)處理來(lái)說(shuō),非常快。
可用于多種語(yǔ)言。
缺點(diǎn):
陡峭的學(xué)習(xí)曲線。
僅 Hadoop 支持即插即用。
Sci-Kit Learn:“Python 中的機(jī)器學(xué)習(xí)”
語(yǔ)言:Python
24 369 ★
Sci-kit learn 是一個(gè)針對(duì)機(jī)器學(xué)習(xí)的強(qiáng)大 Python 庫(kù),主要用于構(gòu)建模型。
使用諸如 Numpy、SciPy 和 Matplotlib 等其他庫(kù)構(gòu)建,對(duì)于統(tǒng)計(jì)建模技術(shù)(如分類、回歸、集群等)非常有效。
Sci-Kit learn的特性包括監(jiān)督式學(xué)習(xí)算法、非監(jiān)督式學(xué)習(xí)算法和交叉驗(yàn)證。
優(yōu)點(diǎn):
可以使用許多 shell 算法。
高效的數(shù)據(jù)挖掘。
缺點(diǎn):
不是最好的模型構(gòu)建庫(kù)。
GPU 使用不高效。
MLPack:“可擴(kuò)展的 C++ 機(jī)器學(xué)習(xí)庫(kù)”
語(yǔ)言:C++
1 856 ★
MLPack 是一個(gè)使用 C++ 實(shí)現(xiàn)的可擴(kuò)展的機(jī)器學(xué)習(xí)庫(kù)。在 C++ 中,你可以猜到,它的內(nèi)存管理非常出色。
擁有高質(zhì)量的機(jī)器學(xué)習(xí)算法與庫(kù),MLPack 的運(yùn)行速度非???。它對(duì)新手十分友好,因?yàn)樗峁┝艘粋€(gè)可供使用的簡(jiǎn)單 API。
優(yōu)點(diǎn):
高度拓展。
可以與 Python 和 C++ 綁定。
缺點(diǎn):
說(shuō)明文檔不夠清晰。
總結(jié)
本文所討論的庫(kù)都非常高效,并經(jīng)過(guò)了時(shí)間的考驗(yàn),質(zhì)量上乘。五大巨頭 Facebook、谷歌、雅虎、蘋果、微軟都在使用這些庫(kù)進(jìn)行深度學(xué)習(xí)和機(jī)器學(xué)習(xí)項(xiàng)目。
你有什么理由不用哪?
-
AI
+關(guān)注
關(guān)注
87文章
31616瀏覽量
270445 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73878 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8442瀏覽量
133107 -
python
+關(guān)注
關(guān)注
56文章
4809瀏覽量
85063
原文標(biāo)題:10 個(gè)用于 AI 開發(fā)的框架和庫(kù)
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論