caffe源碼解析二 —— 代碼目錄結構

前沿

上一篇咱們安裝好了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中註冊繼承
相關文章
相關標籤/搜索