Caffe筆記 一 Caffe模型解釋

2021-08-17 09:24:59 字數 1445 閱讀 9909

前言:

此系列文章是作者看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...