blob是乙個類模板,封裝了syncedmemory類,作為基本計算單元服務layer,net,solver等。使用同步時必須#include」caffe/syncedmem.hpp」。
//blob中的shape_string()函式
inline
string shape_string() const
stream << << "("
<< count_ << ")";//將count_的值輸出到stream
return stream.str();//將stream轉換成string並將該字串返回
}//轉換座標軸函式:
inline
int canonicalaxisindex(int axis_index) const;
該函式保證對於座標索引 [-n,n) 轉換到普通索引 [0,n)。如果輸入的是負索引值,表示從後向前訪問,-1表示最後乙個元素。
偏移量計算函式:
inline
int offset(const
int n,const
int c = 0,const
int h = 0;const
int w = 0)const
inline
int offset(const
vector
& indices)const}}
//通過inline const shared_ptr& diff() const函式來實現cpu/gpu的記憶體共享。
//反序列化函式
void fromproto(const blobproto &proto,bool reshape = true);
//序列化函式
void toproto(blobproto* proto,bool write_diff = false);//預設序列化時不帶diff
caffe中Blob資料結構
blob資料結構是caffe中基本的資料儲存單元,它主要儲存的資料是網路中的中間資料變數,比如各層的輸入和輸出 代價函式關於網路各層引數的梯度。為什麼要專門為資料設計乙個儲存結構,我的理解是這樣保證的網路中的資料儲存結構的統一性,由於網路中每個網路的計算過程都是相似的,所以如果能把資料儲存也統一起來...
Caffe中的Blob資料結構
blob是caffe最基礎的資料結構。它有4維 num channels height width 我們通過 來看看 include include include using namespace caffe using namespace std int main void caffe使用blob...
Caffe資料結構一Blob
blob是caffe的基本儲存單元,用於儲存權值 data 和權值增量 diff blobproto物件實現磁碟,記憶體之間的資料通訊。對於載入,儲存訓練好的模型的權值非常實用。include include include include using namespace caffe using n...