-
Caffe
(卷積神經網絡框架)
鎖定
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 表示網絡結構,以有向非循環圖形式的網絡構建。
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安裝平台
- 參考資料
-
- 1. 於志剛. 基於卷積神經網絡的人臉識別研究與實現[D].中北大學,2018. .中國知網[引用日期2019-07-20]
- 2. Yangqing Jia .daggerfs.2020-01-05[引用日期2022-08-05]
- 3. Caffe | Installation .berkeleyvision.2020-01-05[引用日期2022-08-05]