Caffe資料結構

2021-08-21 12:41:25 字數 651 閱讀 3607

荀子《勸學》:不積跬步,無以至千里;不積小流,無以成江海。caffe相當於net,按照設計圖紙(prototxt),用blob這些磚塊築成一層層(layer)樓房,最後通過sgd方法(solver)進行裝修(train)、精裝修(finetune)實現的。重要組成部分是:blob、layer、net

blob

blob是乙個模板類,宣告在include/caffe/blob.hpp中,分裝了syncedmemory類,作為基本計算單元服務layer、net、solver等,在記憶體中是4維陣列,維度從低到高(width_,height_,channels_,num_),用來儲存資料或權值(data)和權值增量(diff),在進行網路計算時,每層的輸入和輸出都需要通過blob物件緩衝。blob是caffe的基本儲存單元。blob的update()函式實現data=data-diff操作,完成cnn權值更新。toproto()、fromproto()實現內部值儲存到磁碟,或者從磁碟載入記憶體。

layer

layer是caffe的基本計算單元,至少有乙個輸入blob和乙個輸出blob,部分layer帶有權值(weight)和偏執項(bias),有兩個運算方向,前向傳播(forward)和反向傳播(backward)。

netnet是乙個完整的cnn模型,包含若干個例項,對應的描述檔案是*.prototxt,

Caffe 資料結構

五大類data layers vision layers common layers activation neuron layers loss layers caffemodel檔案中儲存的資料結構對應乙個netparameter 類 部分成員函式 layer size 獲取網路層數 mutabl...

caffe中Blob資料結構

blob資料結構是caffe中基本的資料儲存單元,它主要儲存的資料是網路中的中間資料變數,比如各層的輸入和輸出 代價函式關於網路各層引數的梯度。為什麼要專門為資料設計乙個儲存結構,我的理解是這樣保證的網路中的資料儲存結構的統一性,由於網路中每個網路的計算過程都是相似的,所以如果能把資料儲存也統一起來...

Caffe資料結構一Blob

blob是caffe的基本儲存單元,用於儲存權值 data 和權值增量 diff blobproto物件實現磁碟,記憶體之間的資料通訊。對於載入,儲存訓練好的模型的權值非常實用。include include include include using namespace caffe using n...