Caffe(卷積神經網路框架)

Caffe(卷積神經網路框架)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

Caffe,全稱Convolutional Architecture for Fast Feature Embedding,是一個兼具表達性、速度和思維模組化的深度學習框架。由伯克利人工智慧研究小組和伯克利視覺和學習中心開發。雖然其核心是用C++編寫的,但Caffe有Python和Matlab 相關接口。Caffe支持多種類型的深度學習架構,面向圖像分類和圖像分割,還支持CNN、RCNN、LSTM和全連線神經網路設計。Caffe支持基於GPU和CPU的加速計算核心庫,如NVIDIA cuDNN和Intel MKL。

基本介紹

  • 中文名:快速特徵嵌入的卷積結構
  • 外文名:Convolutional Architecture for Fast Feature Embedding
  • 實質:一種深度學習框架
  • 特點:清晰,可讀性高,學習快速
  • 接口:Python和Matlab 相關接口
  • 領域:人工智慧
  • 簡稱:Caffe
簡介,特點與結構,其他深度學習框架,

簡介

Caffe是一個深度學習框架,最初開發於加利福尼亞大學伯克利分校。Caffe在BSD許可下開源,使用C++編寫,帶有Python接口。是賈揚清在加州大學伯克利分校攻讀博士期間創建了Caffe項目。項目託管於GitHub,擁有眾多貢獻者。Caffe套用於學術研究項目、初創原型甚至視覺、語音和多媒體領域的大規模工業套用。雅虎還將Caffe與Apache Spark集成在一起,創建了一個分散式深度學習框架CaffeOnSpark。2017年4月,Facebook發布Caffe2,加入了遞歸神經網路等新功能。2018年3月底,Caffe2併入PyTorch。

特點與結構

特點
Caffe 完全開源,並且在有多個活躍社區溝通解答問題,同時提供了一個用於訓練、測試等完整工具包,可以幫助使用者快速上手。此外 Caffe 還具有以下特點:
模組性:Caffe 以模組化原則設計,實現了對新的數據格式,網路層和損失函式輕鬆擴展。
表示和實現分離:Caffe 已經用谷歌的 Protocl Buffer定義模型檔案。使用特殊的文本檔案 prototxt 表示網路結構,以有向非循環圖形式的網路構建。
Python和MATLAB結合: Caffe 提供了 Python 和 MATLAB 接口,供使用者選擇熟悉的語言調用部署算法套用。
GPU 加速:利用了 MKL、Open BLAS、cu BLAS 等計算庫,利用GPU實現計算加速。
結構
簡單來講,Caffe 中的數據結構是以 Blobs-layers-Net 形式存在。其中,Blobs 是通過 4 維向量形式(num,channel,height,width)存儲網路中所有權重,激活值以及正向反向的數據。作為 Caffe 的標準數據格式,Blob 提供了統一記憶體接口。Layers 表示的是神經網路中具體層,例如卷積層等,是 Caffe 模型的本質內容和執行計算的基本單元。layer 層接收底層輸入的 Blobs,向高層輸出 Blobs。在每層會實現前向傳播,後向傳播。Net 是由多個層連線在一起,組成的有向無環圖。一個網路將最初的 data 數據層載入數據開始到最後的 loss 層組合為整體。

其他深度學習框架

在深度學習初始階段,每個深度學習研究者都需要寫大量的重複代碼。為了提高工作效率,這些研究者就將這些代碼寫成了一個框架放到網上讓所有研究者一起使用。接著,網上就出現了不同的框架。隨著時間的推移,最為好用的幾個框架被大量的人使用從而流行了起來。[全世界最為流行的深度學習框架有PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch。
TensorFlow(Google)
自2015年底以來,TensorFlow的庫已正式在GitHub上開源,被廣泛套用於學術研究和工業套用。一些值得注意的用途包括DeepSpeech,RankBrain,SmartReply和On-DeviceComputerVision。可以在TensorFlow的GitHub項目中查看一些最佳官方用途、研究模型、示例和教程。
Theano(蒙特婁大學)
Theano是蒙特婁大學蒙特婁學習算法小組開發的一個開源項目。其一些最突出的特性包括GPU的透明使用,與NumPy緊密結合,高效的符號區分,速度/穩定性最佳化以及大量的單元測試。但是,2017年11月開始不再積極維護。原因在於Theano多年來推出的大部分創新技術現在已被其他框架所採用和完善。
Torch(NYU/Facebook)
Torch是Facebook的開源機器學習庫、科學計算框架和基於Lua程式語言的腳本語言。它提供了廣泛的深度學習算法,並已被Facebook、IBM、Yandex和其他公司用於解決數據流的硬體問題。
PyTorch(Facebook)
PyTorch在學術研究者中很受歡迎,也是相對比較新的深度學習框架。Facebook人工智慧研究組開發了PyTorch以應對一些在前任資料庫Torch使用中遇到的問題。由於程式語言Lua的普及程度不高,Torch永遠無法經歷GoogleTensorFlow那樣的迅猛發展。因此,PyTorch採用已經為許多研究人員、開發人員和數據科學家所熟悉的原始Python命令式編程風格。同時它還支持動態計算圖,這一特性使得其對時間序列以及自然語言處理數據相關工作的研究人員和工程師很有吸引力。
PaddlePaddle
PaddlePaddle是百度研發的開源開放的深度學習平台,是國內最早開源、也是當前唯一一個功能完備的深度學習平台。依託百度業務場景的長期錘鍊,PaddlePaddle有最全面的官方支持的工業級套用模型,涵蓋自然語言處理、計算機視覺、推薦引擎等多個領域,並開放多個領先的預訓練中文模型,以及多個在國際範圍內取得競賽冠軍的算法模型。
PaddlePaddle同時支持稠密參數和稀疏參數場景的超大規模深度學習並行訓練,支持千億規模參數、數百個幾點的高效並行訓練,也是最早提供如此強大的深度學習並行技術的深度學習框架。PaddlePaddle擁有強大的多端部署能力,支持伺服器端、移動端等多種異構硬體設備的高速推理,預測性能有顯著優勢。目前PaddlePaddle已經實現了API的穩定和向後兼容,具有完善的中英雙語使用文檔,形成了易學易用、簡潔高效的技術特色。
PaddlePaddle3.0版本升級為全面的深度學習開發套件,除了核心框架,還開放了VisualDL、PARL、AutoDL、EasyDL、AIStudio等一整套的深度學習工具組件和服務平台,更好地滿足不同層次的深度學習開發者的開發需求,具備了強大支持工業級套用的能力,已經被中國企業廣泛使用,也擁有了活躍的開發者社區生態。
MXNet
MXNet的主要作者是李沐,最早就是幾個人抱著純粹對技術和開發的熱情做起來的,如今成了亞馬遜的官方框架,有著非常好的分散式支持,而且性能特別好,占用顯存低,同時其開發的語言接口不僅僅有Python和C++,還有R,Matlab,Scala,JavaScript,等等,可以說能夠滿足使用任何語言的人。但是MXNet的缺點也很明顯,教程不夠完善,使用的人不多導致社區不大,同時每年很少有比賽和論文是基於MXNet實現的,這就使得MXNet的推廣力度和知名度不高。

相關詞條

熱門詞條

聯絡我們