(Caffe)目錄結構

本文系轉載,具體出處不詳

目錄結構

caffe文件夾下主要文件:

  • data 用於存放下載的訓練數據
  • docs 幫助文檔
  • example 一些代碼樣例
  • matlab MATLAB接口文件
  • python Python接口文件
  • model 一些配置好的模型參數
  • scripts 一些文檔和數據用到的腳本

下面是核心代碼文件夾:

  • tools 保存的源碼是用於生成二進制處理程序的,caffe在訓練時實際是直接調用這些二進制文件。
  • include Caffe的實現代碼的頭文件
  • src 實現Caffe的源文件

後面的學習主要圍繞後面兩個文件目錄(includesrc)下的代碼展開

源碼結構

  • 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 深度神經網絡中的基本結構就是一層層互不相同的網絡了,這個文件夾下的源文件以及目前位置“src/caffe”中包含的我還沒有提到的所有.cpp文件就是caffe的核心目錄下的核心代碼了。

源碼主要關係

如上所言我們現在可以知道,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




發佈了32 篇原創文章 · 獲贊 51 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章