【深度學習】(Caffe)目錄結構
阿新 • • 發佈:2019-01-28
http://blog.csdn.net/mounty_fsc/article/details/51034732
目錄結構
caffe資料夾下主要檔案:
data
用於存放下載的訓練資料docs
幫助文件example
一些程式碼樣例matlab
MATLAB介面檔案python
Python介面檔案model
一些配置好的模型引數scripts
一些文件和資料用到的指令碼
下面是核心程式碼資料夾:
tools
儲存的原始碼是用於生成二進位制處理程式的,caffe在訓練時實際是直接呼叫這些二進位制檔案。include
Caffe的實現程式碼的標頭檔案src
實現Caffe的原始檔
後面的學習主要圍繞後面兩個檔案目錄(include
和src
)下的程式碼展開
原始碼結構
src
gtest
google test一個用於測試的庫你make runtest時看見的很多綠色RUN OK就是它,這個與caffe的學習無關,不過是個有用的庫caffe
關鍵的程式碼都在這裡了test
用gtest測試caffe的程式碼util
資料轉換時用的一些程式碼。caffe速度快,很大程度得益於記憶體設計上的優化(blob資料結構採用proto)和對卷積的優化(部分與im2col相關)[1]。proto
即所謂的“Protobuf”[2],全稱“Google Protocol Buffer”,是一種資料儲存格式,幫助caffe提速。layers
原始碼主要關係
如上所言我們現在可以知道,caffe核心中的核心是下面的文件和檔案:(這部分目前不清楚的地方先參照別人的觀點)
- blob[.cpp .h] 基本的資料結構Blob類[3]。
- common[.cpp .h] 定義Caffe類
- internal_thread[.cpp .h] 使用boost::thread執行緒庫
- net[.cpp .h] 網路結構類Net
- solver[.cpp .h] 優化方法類Solver
- data_transformer[.cpp .h] 輸入資料的基本操作類DataTransformer
- syncedmem[.cpp .h] 分配記憶體和釋放記憶體類CaffeMallocHost,用於同步GPU,CPU資料
- layer_factory.cpp layer.h 層類Layer
layers
此資料夾下面的程式碼全部至少繼承了類Layer