深度學習學習框架

weixin_33871366發表於2018-08-02

在深度學習初始階段,每個深度學習研究者都需要寫大量的重複程式碼。為了提高工作效率,這些研究者就將這些程式碼寫成了一個框架放到網上讓所有研究者一起使用。接著,網上就出現了不同的框架。隨著時間的推移,最為好用的幾個框架被大量的人使用從而流行了起來。 [1] 全世界最為流行的深度學習框架有Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch。

TensorFlow

TensorFlow是谷歌基於DistBelief進行研發的第二代人工智慧學習系統,其命名來源於本身的執行原理。Tensor(張量)意味著N維陣列,Flow(流)意味著基於資料流圖的計算,TensorFlow為張量從流圖的一端流動到另一端計算過程。TensorFlow是將複雜的資料結構傳輸至人工智慧神經網中進行分析和處理過程的系統。

TensorFlow可被用於語音識別影象識別等多項機器學習和深度學習領域,對2011年開發的深度學習基礎架構DistBelief進行了各方面的改進,它可在小到一部智慧手機、大到數千臺資料中心伺服器的各種裝置上執行。TensorFlow將完全開源,任何人都可以用。

Google 開源的Tensorflow是一款使用C++語言開發的開源數學計算軟體,使用資料流圖(Data Flow Graph)的形式進行計算。圖中的節點代表數學運算,而圖中的線條表示多維資料陣列(tensor)之間的互動。Tensorflow靈活的架構可以部署在一個或多個CPU、GPU的臺式及伺服器中,或者使用單一的API應用在移動裝置中。Tensorflow最初是由研究人員和Google Brain 團隊針對機器學習和深度神經網路進行研究而開發,開源之後幾乎可以在各個領域適用。

Tensorflow是全世界使用人數最多、社群最為龐大的一個框架,因為Google公司出品,所以維護與更新比較頻繁,並且有著Python和C++的介面,教程也非常完善,同時很多論文復現的第一個版本都是基於Tensorflow寫的,所以是深度學習界框架預設的老大。

Caffe

卷積神經網路框架

Caffe,全稱Convolutional Architecture for Fast Feature Embedding。是一種常用的深度學習框架,主要應用在視訊、影象處理方面的應用上。

caffe是一個清晰,可讀性高,快速的深度學習框架。作者是賈揚清,加州大學伯克利的ph.D,現就職於Facebook。caffe的官網是http://caffe.berkeleyvision.org/

Theano

Theano於2008年誕生於蒙特利爾理工學院,其派生出了大量的深度學習Python軟體包,最著名的包括Blocks和Keras。Theano的核心是一個數學表示式的編譯器,它知道如何獲取你的結構,並使之成為一個使用numpy、高效本地庫的高效程式碼,如BLAS和原生程式碼(C++)在CPU或GPU上儘可能快地執行。它是為深度學習中處理大型神經網路演算法所需的計算而專門設計,是這類庫的首創之一(發展始於2007年),被認為是深度學習研究和開發的行業標準。

但是開發Theano的研究人員大多去了Google參與Tensorflow的開發,所以,某種程度來講Tensorflow就像Theano的孩子。[1]

MXNet

MXNet的主要作者是李沐,最早就是幾個人抱著純粹對技術和開發的熱情做起來的,如今成了亞馬遜的官方框架,有著非常好的分散式支援,而且效能特別好,佔用視訊記憶體低,同時其開發的語言介面不僅僅有Python和C++,還有R,Matlab,Scala,JavaScript,等等,可以說能夠滿足使用任何語言的人。

但是MXNet的缺點也很明顯,教程不夠完善,使用的人不多導致社群不大,同時每年很少有比賽和論文是基於MXNet實現的,這就使得MXNet的推廣力度和知名度不高。 [1]

Torch

Torch是一個有大量機器學習演算法支援的科學計算框架,其誕生已有十年之久,但是真正起勢得益於Facebook開源了大量Torch的深度學習模組和擴充套件。Torch的特點在於特別靈活,但是另一個特殊之處是採用了程式語言Lua,在深度學習大部分以Python為程式語言的大環境之下,一個以Lua為程式語言的框架有著更多的劣勢,這一項小眾的語言增加了學習使用Torch這個框架的成本。

PyTorch

PyTorch的前身便是Torch,其底層和Torch框架一樣,但是使用Python重新寫了很多內容,不僅更加靈活,支援動態圖,而且提供了Python介面。它是由Torch7團隊開發,是一個以Python優先的深度學習框架,不僅能夠實現強大的GPU加速,同時還支援動態神經網路,這是很多主流深度學習框架比如Tensorflow等都不支援的。

PyTorch既可以看作加入了GPU支援的numpy,同時也可以看成一個擁有自動求導功能的強大的深度神經網路。除了Facebook外,它已經被Twitter、CMU和Salesforce等機構採用。 [1]

相關文章