盤點程序員必須了解的十大最佳AI庫及框架
眼下,AI 已經成為越來越火的一個方向,程序員對于新技術是最敏感的一個人群,作為一名程序員如何轉向人工智能方向?

本文將向您介紹一些在人工智能(AI)領域常被使用的優(yōu)質軟件庫,并且分析它們的優(yōu)/劣勢和自身特點。
雖然 AI 曾經被稱為只有書呆子和天才才去觸碰的專業(yè)領域,但是現(xiàn)如今由于各種軟件庫和框架的發(fā)展,它已成為一個更加開放的 IT 領域,很多人都已投身于其中。
現(xiàn)在就讓我們來深入了解和探索這個紛繁的 AI 庫的世界吧!
TensorFlow
“通過使用數(shù)據流圖的計算,來實現(xiàn)可擴展的機器學習”,語言:C++ 或 Python。
當提到 AI 的時候,您首先聽到的框架應該就是谷歌的 TensorFlow。
TensorFlow 是使用數(shù)據流圖來執(zhí)行數(shù)值計算的開源庫。該框架的特點是它可以利用任何 CPU 或 GPU 進行計算,無論是臺式機、服務器、甚至是移動設備的架構都可以實現(xiàn)。這個框架中提供了 Python 語言的編程環(huán)境。
TensorFlow 通過所謂的各種節(jié)點來分類數(shù)據層,并對它所獲得的任何信息做出判定。
想了解更多相關信息,可以參看:https://www.tensorflow.org/
優(yōu)勢:
使用一種簡單易學的語言--Python。
采用計算圖形的抽象。
由 TensorBoard 提供可視化。
劣勢:
由于 Python 并非是最快的語言,因此該軟件庫運行起來并不快。
缺乏各種預先訓練好(pre-trained)的模型。
并非完全開源。
微軟 CNTK
“一個開源的深度學習工具包”,語言:C++。
我們可以稱之為微軟對于谷歌 TensorFlow 的“回應”。
微軟的計算網絡工具包(Microsoft's Computational Network ToolKit,CNTK)是一種能夠提高模塊化和分離式計算網絡的軟件庫,它還提供了各種學習算法和模型的描述。
在需要有大量服務器參與運行的時候,CNTK 可以利用多臺服務器來同步實現(xiàn)。雖然據說它在功能上將會對谷歌 TensorFlow 有所屏蔽,但現(xiàn)在看來還為時過早。
想了解更多相關信息,可以參看:https://github.com/Microsoft/CNTK
優(yōu)勢:
非常靈活。
可實現(xiàn)分布式的訓練。
支持 C++,C#,Java 和 Python。
劣勢:
它是由一種新的語言--網絡描述語言(NetworkDescription Language,NDL)來實現(xiàn)。
可視化不足。
Theano
“一種數(shù)值計算的軟件庫”,語言:Python。
Theano 是 TensorFlow 的強有力競爭者。它是一個功能強大的 Python 庫,能夠高效地實現(xiàn)與各種多維數(shù)組有關的數(shù)值運算。
該軟件庫能夠準確地使用 GPU 來執(zhí)行各種數(shù)據密集型的計算,而不會在運行中給 CPU 增加負擔。
出于這個原因,在近十年來,Theano 一直被運用于供電系統(tǒng)內部各種大規(guī)模的計算密集型操作。
不過在 2017 年 9 月,Theano 宣布將在 2017 年 11 月的最后一次重要發(fā)布之后,對其 1.0 版本停止更新。
當然,這并不意味著它在功能上會有所遜色,只要您愿意,對它隨時展開研究都是值得的。
想了解更多相關信息,可以參看:https://github.com/Theano/Theano
優(yōu)勢:
對 CPU 和 GPU 的使用進行了適當?shù)膬?yōu)化。
高效的數(shù)字任務處理能力。
劣勢:
原生的 Theano 相對于其他軟件庫的水平較低,需要與其他軟件庫一起使用,以獲得較高的抽象水平。
在 AWS 上運行時會有一些 Bug。
Caffe
“深度學習的開放式框架,且速度快”,語言:C++。
Caffe 是一個功能強大的深度學習框架。和上述列表中的其他框架相比,它能夠實現(xiàn)快速和有效的深度學習式研究。
通過Caffe,您可以非常容易地為圖像分類,建立卷積神經網絡(convolutional neural network,CNN)。Caffe 能夠有效地工作在 GPU 上,并且在運行過程中能夠發(fā)揮極快的速度。
想了解更多相關信息,可以參看:http://caffe.berkeleyvision.org/
Caffe 的主要類包括:
優(yōu)勢:
可與 Python 和 MATLAB 綁定。
運行性能極佳。
無需編寫代碼,便可實現(xiàn)對各個模型的訓練。
劣勢:
對復發(fā)性的網絡(recurrent networks)支持不佳。
與新架構的協(xié)同性不好。
Keras
“為人類的深度學習而打造”,語言:Python。
Keras 是一個用 Python 編寫的開源神經網絡庫。不像 TensorFlow、CNTK 和 Theano,Keras 并不服務于端到端的機器學習框架。
相反地,作為一個接口,它提供了一個高層次的抽象,這使得無論是在什么樣的框架下,神經網絡都能夠方便地進行配置。
目前谷歌 TensorFlow 能夠將 Keras 作為后端予以支持,而微軟的 CNTK 是否會在將來支持 Keras,則暫無時間表。
想了解更多相關信息,可以參看:https://keras.io/
優(yōu)勢:
用戶友好且容易上手。
容易擴展。
無縫運行在 CPU 和 GPU 上。
能與 Theano 和 TensorFlow 無縫協(xié)作。
劣勢:
無法作為一個獨立的框架被使用。
Torch(火炬)
“一個開源的機器學習庫”,語言:C。
Torch 是一個為科研和數(shù)值運算打造的、開源的機器學習庫。它基于的是 Lua 編程語言,而非 Python 庫。通過提供大量的算法,它不但使得深度學習研究更為容易,而且能提高效率和速度。
Torch 具有強大的 N 維陣列,這對于諸如切片和索引等操作是非常有用的。它還提供了線性代數(shù)的程序和神經網絡的模型。
想了解更多相關信息,可以參看:
http://torch.ch/
優(yōu)勢:
非常靈活。
有極高的速度和效率。
具有大量的預先訓練好的模型。
劣勢:
文檔不清。
缺少即插即用的代碼。
基于的是一種不那么流行的語言--Lua。
Accord.NET
“支持機器學習、計算機視覺、統(tǒng)計、以及使用.NET的科學計算”,語言:C#。
這是為C#程序員準備的軟件庫,Accord.NET 是一種 .NET 的機器學習框架,它方便了音頻和圖像的各種處理。
該框架可以有效地處理數(shù)值優(yōu)化、人工神經網絡、甚至可視化等方面。除此之外,Accord.NET 在計算機視覺和信號處理上也具有強大的功能,而且通過一些簡單的算法就能實現(xiàn)。
想了解更多相關信息,可以參看:http://accord-framework.net/
優(yōu)勢:
它擁有一個龐大且活躍的開發(fā)團隊。
具有非常好的文檔框架。
可實現(xiàn)質量可視化。
劣勢:
該框架并不是非常流行。
比 TensorFlow 要運行得緩慢一些。
Spark MLlib
“一個可擴展的機器學習庫”,語言:Scala。
Apache 的 Spark MLlib 是一個極具擴展性的機器學習庫。它支持的編程語言有 Java、Scala、Python、甚至是 R 語言。
它能夠非常有效地通過 Python 和 R 語言的 Numpy 庫(譯者注:NumPy 系統(tǒng)是 Python 的一種開源的數(shù)值計算擴展)進行交互操作。
MLlib 能夠很容易地被植入到 Hadoop 的工作流中。它還能提供諸如分類、回歸、歸并等機器學習的算法。在涉及到大規(guī)模數(shù)據處理時,這款功能強大的軟件庫運行起來非常快。
想了解更多相關信息,可以參看:https://spark.apache.org/mllib/
優(yōu)勢:
能極快速地處理大規(guī)模的數(shù)據。
支持多種語言。
劣勢:
學習曲線“陡峭”(即不易學習)。
只能對 Hadoop 實現(xiàn)即插即用。
Sci-kitLearn
“使用 Python 進行機器學習”,語言:Python。
SCI-Kit 是一款主要用于在機器學習中構建各類模型的、非常強大的 Python 庫。
通過使用諸如 Numpy、SciPy 和 Matplotlib 之類的庫,它對于諸如分類、回歸、歸并等統(tǒng)計模型非常有效。SCI-Kit 還能為您帶來監(jiān)管式與無監(jiān)管式的學習算法、以及交叉驗證等功能。
想了解更多相關信息,可以參看:http://scikit-learn.org/
優(yōu)勢:
能支持許多主流的算法。
提供有效的數(shù)據挖掘。
劣勢:
對于構建模型來說并非是最好的。
使用 GPU 時,效果并非最佳。
MLPack
“一個可擴展的 C++ 類型機器學習庫”,語言:C++。
MLPack 是一款利用 C++ 來實現(xiàn)可擴展機器學習的軟件庫。由于它運行在 C++ 中,因此您完全可以想象到它對內存的高效管理。
由于在庫中自帶優(yōu)質的機器學習算法,MLPack 運行起來速度極快。另外,該軟件庫對于新手來說十分“友好”,它提供了一個簡單的 API。
想了解更多相關信息,可以參看:http://mlpack.org/
優(yōu)勢:
擴展性極強。
提供 Python 和 C++ 的綁定。
劣勢:
沒有優(yōu)質的文檔。
總結
本文在此所討論到的各種軟件庫都是在大家長期使用之后,備受好評且高質量的。
像 Facebook、谷歌、雅虎、蘋果和微軟這樣的大公司已經將它們運用到了各自的深度學習和機器學習的項目中。您還有什么理由不去試試呢?
開發(fā)者 AI
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。