複製鏈接
請複製以下鏈接發送給好友

Caffe

(卷積神經網絡框架)

鎖定
Caffe(全稱Convolutional Architecture for Fast Feature Embedding)是一個兼具表達性、速度和思維模塊化的深度學習框架,由伯克利人工智能研究小組和伯克利視覺和學習中心開發。雖然其內核是用C++編寫的,但Caffe有PythonMatlab相關接口。
Caffe支持多種類型的深度學習架構,面向圖像分類和圖像分割,還支持CNN、RCNN、LSTM和全連接神經網絡設計。Caffe支持基於GPU和CPU的加速計算內核庫,如NVIDIA cuDNN和Intel MKL。
中文名
快速特徵嵌入的卷積結構
外文名
Convolutional Architecture for Fast Feature Embedding
所屬學科
計算機科學
創建者
賈揚清 [2] 

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 以模塊化原則設計,實現了對新的數據格式,網絡層和損失函數輕鬆擴展。
表示和實現分離: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 層組合為整體。 [1] 

Caffe安裝平台

Ubuntu 16.04–12.04、OS X 10.11–10.8 上並通過 Docker 和 AWS 安裝和運行 Caffe。 [3] 
參考資料