深度學習中的框架特點及介紹

Lily發表於2019-05-25

下面我們來對深度學習中的各個框架的特點進行介紹

1.TensorFlow框架

tensorflow是用c++語言開發的,同時支援C,java,python等多種語言多的呼叫,目前主流的方式通常會使用python語言進行驅動應用。利用c++語言可以保證其執行效率,python語言作為其上層應用語言,可以為研究人員節省大量的時間。

Tensorflow與CNTK,MXNET,theano同屬於符號計算架構,允許使用者在不需要使用低階語言實現的情況下,開發出新的複雜層型別。基於圖運算是其最主要的特點,通過圖上的節點變數可以控制訓練中各個環節的變數,尤其在需要進行底層操作時,Tensorflow要比其他的框架更容易些。雖然Tensorflow在大型計算機叢集中的並行處理,運算效能略低於CNTK,但是在個人機器使用場景下,可以根據機器的配置自動選擇CPU或者GPU來進行計算。

2.Theano

Theano是一個十餘年的python深度學習和機器學習框架,用來定義,優化和模擬數學表示式計算,用於高效的解決多為陣列的計算問題,有較好的擴充套件性。

3.Torch

Torch同樣具有很好的擴充套件性,但是有些介面不夠全面,比如WGAN-OP這樣的網路需要手動計算來修改梯度沒有對應的介面。其最大的缺點是,需要LuauJIT的支援,用於Lu語言,在python流行的今天,通用效能方面比較差。

4.Keras

keras可以理解為一個Theano框架和tensorflow前端的一和個組合。其構建模型的api呼叫方式漸漸成為了主流,包括Tensorflow,CNTK,MXNet等知名框架,都提供對keras呼叫語法的支援。使用keras編寫的程式碼,會有更好的可移植性。

5.DeepLearning4j

DeepLearning4j是基於java語言和Scala語言開發的,應用在Hadoop和spark系統之上的深度學習軟體。

6.Caffe

最初caffe是一個強大的影像分類框架,是最容易測試和評估效能的標準深度學習框架,並且提供了很多訓練好的模型,尤其是該模型的複用價值在其他的框架中都會出現,大大提升了現有模型的訓練時間。但是Caffe更新緩慢。

7.MXNet

MXNet是一個可移植的,可伸縮的深度學習庫,具有Torch,Theano和caffe的部分特性。在不同程度上面支援Python,R,Scala,Julia和C++語言,也是目前比熱門的主流框架之一。

8.CNTK

CNTK是一個微軟開發的深度學習軟體包,以速度塊兒著稱,運用獨特的神經網路配置語言Brain Script,大大的降低了學習成本。有微軟作為後盾,CNTK成為最具有潛力的深度學習框架之一。目前的成熟度和Tensorflow相比有較大的差距,但是其與Visual Studio的耦合,以及特定的MS程式設計風格,使得熟悉VS的小夥伴極容易上手。

相關文章