上一篇咱們安裝好了Windows下的caffe,併成功的對其進行了編譯。這篇咱們主要來說解一下caffe代碼的目錄結構,瞭解了整個目錄結構,有助於咱們的源碼學習。python
工程目錄下的文件夾的做用以下所示:網絡
data/ 用於存放下載的訓練數據 docs/ 幫助文檔 examples/ 代碼樣例 matlab/ MATLAB接口文件 python/ PYTHON接口文件 models/ 一些配置好的模型參數 scripts/ 一些文檔和數據會用到的腳本 tools/ 保存的是用於生成二進制處理程序,caffe在訓練時實際是直接調用這些二進制文件 include/ Caffe的實現代碼的頭文件 src/ 實現Caffe的源文件
其中src/caffe/目錄下的文件夾做用以下:數據結構
test/ 用gtest測試caffe的代碼 util/ 數據轉換時用的一些代碼。caffe速度快,很大程度得益於內存設計上的優化(blob數據結構採用proto)和對卷積的優化(部分與im2col相關) proto/ 即所謂的「Protobuf」,全稱「Google Protocol Buffer」,是一種數據存儲格式,幫助caffe提速 layers/ 深度神經網絡中的基本結構就是一層層互不相同的網絡了,這個文件夾下的源文件以及目前位置「src/caffe」中包含全部.cpp文件就是caffe的核心目錄下的核心代碼了。
src/caffe/目錄下的代碼做用以下:學習
blob[.cpp .h] 基本的數據結構Blob類 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[.cpp .h] 層類Layer layers/ 此文件夾下面的代碼所有至少繼承了類Layer, 從layer_factory中註冊繼承