將datum
型別或者cv::mat
, 轉化為caffe
的blob
,並按照transformation``parameter
引數對影象做處理,例如scale,mirro
等
推斷blob
的shape
proto
定義如下:
// to the data layer's data
message transformationparameter
使用示例1:
使用示例2:layer
transform_param
data_param
}
transform_param
下面看其核心的資料成員以及函式定義:
template class datatransformer ;
下面僅僅給出將datum型別轉化為caffe的blob, cv::mat的轉化同理.
本系列深度學習框架templatevoid datatransformer::transform(const datum& datum,
dtype* transformed_data)
if (has_mean_values) }}
int height = datum_height;
int width = datum_width;
int h_off = 0;
int w_off = 0;
if (crop_size) else
}dtype datum_element;
int top_index, data_index;
for (int c = 0; c < datum_channels; ++c) else
if (has_uint8) else
if (has_mean_file) else else }}}}}
caffe
原始碼分析主要內容如下:
1. caffe原始碼分析-cmake 工程構建:
caffe原始碼分析-cmake 工程構建主要內容:
2. caffe的資料記憶體分配類syncedmemory
, 以及類blob
資料傳輸的媒介.
主要內容:
caffe原始碼分析-syncedmemory
caffe原始碼分析-blob
其中blob
分析給出了其直接與opencv的相互轉化以及操作,可以使得我們更好的理解blob
.
3. caffelayer
的原始碼分析,包括從整體上說明了layer
類別以及其proto定義與核心函式.
內容如下:
caffe原始碼分析-layer
caffe原始碼分析-relulayer
caffe原始碼分析-inner_product_layer
caffe原始碼分析-layer_factory
首先分析了最簡單的layer
relu
,然後在是inner_product_layer全連線層
, 最後是layer_factory
caffe中 以此工廠模式create各種layer.
4. 資料輸入層,主要是多執行緒+blockingqueue的方式讀取資料訓練:
內容如下:
caffe原始碼分析-blockingqueue
caffe原始碼分析-internalthread
caffe原始碼分析-datareader
5. io處理例如讀取proto檔案轉化為網路,以及網路引數的序列化
內容如下:
caffe原始碼分析-datatransformer
caffe原始碼分析-db, io
6. 最後給出了使用純c++結合多層感知機網路訓練mnist的示例
內容如下:
caffe c++示例(mnist 多層感知機c++訓練,測試)
類似與caffe
一樣按照layer、solver、loss、net
等模組構建的神經網路實現可以見下面這篇blog,相信看懂了這個python的**理解caffe框架會更簡單點.
神經網路python實現
caffe原始碼分析 IoU計算
iou pre dict 檢測框與 grou nd t ruth 檢測框的 交集pr edic t檢測框 與gro und trut h檢測框 的的並集 iou frac iou pr edic t檢測框 與gro und trut h檢測框 的的並集 pred ict檢 測框與g roun d t...
Caffe引數交換原始碼分析
對境準備 對於多個gpu而言,一台機器2個gpu,引數交換的流程圖 引數交換從main 進入train 函式,在train函式中找到對應原始碼為 1 2if gpus.size 1 else 因為gpu的個數 1,所以執行sync solver,null,solver param 和run 函式,首...
Caffe原始碼分析隨筆 二 Blob
blob是caffe中每一層的基本型別。檢視標頭檔案 template class blob protected shared ptr data shared ptr diff shared ptr shape data vector shape int count int capacity blo...