前言:
此系列文章是作者看caffecn官方教程中譯本過程中做下的筆記,方便自己以後翻閱及有需要的人翻閱。
caffe使用blobs結構來儲存,交換,處理網路中正向和反向迭代的資料(data)和導數資訊(diff)。blob是caffe中的標準陣列結構。layer是caffe模型和計算的基本單元。net是一系列layers和其連線的集合。sloveing單獨配置,用以解耦模型的建立與優化的過程。
1.blobs
blob是caffe中處理和傳遞實際資料的資料封裝包。從數學意義上講,blob是按c風格連續儲存的n維陣列。
對於批量影象資料來說,blob常規的資料維度是影象數量n*通道數k*影象高度h*影象寬度w,以行為主進行儲存,以致於最右面的維度更新最快。
number(n)是每個批次處理的資料量。channel(k)是特徵維度,對於rgb影象來說,k=3。
2.layer
layer是caffe模型的本質內容和執行計算的基本單元,其可進行很多運算,如convolve,pool,inner product,rectified-linear,sigmoid,元素級的資料交換,normalize,load data,softmax,hinge等。可在caffe的layer catalogue中檢視所有操作,其囊括了絕大部分目前最前沿的深度學習任務所需的層型別。
乙個layer通過bottom接受資料,通過top輸出資料。
每乙個layer都定義了三種重要的運算,setup(初始化),forward(前向傳播),backward(反向傳播)。
setup:模型初始化時充值layers及其相互間的連線。
forward:從bottom層接受資料,進行計算後輸送到top層。
backward:對於給定的top層輸出的梯度,計算其相對於輸入的梯度,並傳遞到bottom層。
3.net
net通過合成各層的輸出來計算這個函式,並通過合成各層的反向傳播過程來計算來自損失函式的梯度。
準確地說,net是由一系列層組成的有向無環(dag)計算圖。典型的net由data layer開始,終止於loss layer。
net使用的是一種文字建模語言來定義的(protocol buffer),學習好的模型會被序列化地儲存在二進位制檔案protocol buffer.caffemodel中。
簡單的net定義如下:
Caffe學習筆記 Caffe模型
乙個完整的深度學習系統最核心的兩個方面是資料和模型。深度學習模型通常由三部分引數組成 可學習引數 learnable parameter 又稱可訓練引數 神經網路權係數 權重,其數值由模型初始化引數 誤差反向傳播過程控制,一般不可人工干預。結構引數 archetecture parameter 包括...
caffe網路模型各層詳解(一)
一 資料層及引數 caffe層次有許多態別,比如data,covolution,pooling,層次之間的資料流動是以blobs的方式進行 首先,我們介紹資料層 資料層是每個模型的最底層,是模型的入口,通常資料的 預處理 如去均值,放大縮小,裁剪和映象等 也在這一層設定引數實現。層次例項如下 1 l...
Caffe學習筆記
個人覺得這個大神對caffe的研究比較深入詳細!目錄 ubuntu14.04安裝caffe 僅cpu ubuntu14.04安裝cuda ubuntu14.04安裝caffe gpu ubuntu14.04 cudnn安裝 caffe cuda7.0下 caffe學習 blobs,layers,an...