caffe卷積原理

作為cnn中最重要的卷積榜揖,最簡單的理解就為:


按照一定步長举哟,卷積核與圖片點乘求和得到新的值

其中迅矛,卷積主要的參數(shù)有:

stride 步長 ? ? ? ? ? ? ?stride_w,stride_h

kernel_size ? ? ? ? ? ? kernel_w,kernel_w

dilation ? ? ? ? ? ? ? ? ? ?膨脹系數(shù)

padding? ? ? ? ? ? ? ? ? pad_w,pad_h

卷積層:conv_layer.cpp

里面主要有

compute_output_shape() ? ?計算輸出blob的大小

Forward_cpu

Backward_cpu

其中Forword_cpu主要用到了forward_cpu_gemm,這個位于base_conv_layer,

forward_cpu_gemm里面使用到了conv_im2col_cpu壶硅,caffe_cpu_gemm销斟。

conv_im2col_cpu ? 是把輸入圖像變?yōu)橐粋€矩陣,這樣子做能直接和卷積核組成的矩陣做點乘约谈,得到的矩陣就為 卷積后每一個特征圖就為為這矩陣中一個行向量犁钟。

查看cov_im2col_cpu;


根據(jù)條件滿足與否迈勋,分為二維卷積以及n維卷積

我們先以im2col_cpu為入手:

主要參數(shù)為:

1.data ?

?2.conv_channels 卷積的通道數(shù)

3.conv_input_shape.cpu_data()[1] ? ? ? ? 即image_h 輸入圖像的height醋粟,主要下標

4conv_input_shape.cpu_data()[1] ? ? ? ? ?image_w

5.padding_h,padding_w

6.stride_h,stride_w

7.dilation ? ?膨脹系數(shù)

推導過程太復雜了米愿,這里有一個單通道的完整的推導過程:lib.csdn.net/article/aiframework/62849

總之,im2col泳唠,就是把一個圖片上的對應每一個卷積核大小的窗函數(shù)里面的元素宙搬,變?yōu)榱邢蛄浚S著步長的移動脖母,得到不同的列向量闲孤,合并起來得到一個矩陣,也就是col_buff

那caffe中是怎么樣計算卷積的:

我們先從單通道入手肥照,用一個單通道卷積核去卷積一個單通道圖像:


在不考慮膨脹系數(shù)的情況下勤众,N=((image_h+2*pad_h-kenrel_h)/stride_h+1)*((image_w+2*pad_w-kenrel_w)/stride_w+1),其實就是計算經(jīng)卷積后輸出的圖像的長與寬们颜,再相乘吕朵,得到feature map的大小努溃。

那當是多通道圖片(比如說最開始的三通道阻问,以及經(jīng)過一層卷積后的擁有很多通道的特征圖)的情況是什么樣的?


c通道的情況

下面以一個實際的例子:


這就是caffe卷積的原理贡蓖。





caffe_gpu_gemm(CblasNoTrans,CblasTrans,M,N,K(Dtype)1,top_diff,bottom_data,(Dtype)1,weights_diff)

voidcaffe_gpu_gemm(constCBLAS_TRANSPOSETransA,constCBLAS_TRANSPOSETransB,const intM,const intN,const intK,constDtypealpha,constDtype* A,constDtype*B,constDtypebeta,

Dtype* C);


caffe_gpu_gemm(CblasTrans,CblasNoTrans,kernel_dim_,

conv_out_spatial_dim_,conv_out_channels_/group_,

(Dtype)1.,weights +weight_offset_* g,output +output_offset_* g,

(Dtype)0.,col_buff +col_offset_* g);

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斥铺,一起剝皮案震驚了整個濱河市坛善,隨后出現(xiàn)的幾起案子眠屎,更是在濱河造成了極大的恐慌,老刑警劉巖改衩,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件葫督,死亡現(xiàn)場離奇詭異板惑,居然都是意外死亡偎快,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門裆馒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丐怯,“玉大人读跷,你說我怎么就攤上這事√蛲ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵订雾,是天一觀的道長矛洞。 經(jīng)常有香客問我沼本,道長,這世上最難降的妖魔是什么抽兆? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任辫红,我火速辦了婚禮,結果婚禮上切油,老公的妹妹穿的比我還像新娘名惩。我一直安慰自己,他們只是感情好攻谁,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著槐瑞,像睡著了一般阁苞。 火紅的嫁衣襯著肌膚如雪祠挫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天骚灸,我揣著相機與錄音慌植,去河邊找鬼。 笑死丈钙,一個胖子當著我的面吹牛交汤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播星岗,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼戒洼,長吁一口氣:“原來是場噩夢啊……” “哼圈浇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起汉额,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蠕搜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜜宪,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡祥山,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年缝呕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片供常。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡栈暇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出煎源,到底是詐尸還是另有隱情香缺,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布原献,位于F島的核電站,受9級特大地震影響埂淮,放射性物質(zhì)發(fā)生泄漏姑隅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一倔撞、第九天 我趴在偏房一處隱蔽的房頂上張望讲仰。 院中可真熱鬧,春花似錦痪蝇、人聲如沸鄙陡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趁矾。三九已至,卻和暖如春给僵,著一層夾襖步出監(jiān)牢的瞬間毫捣,已是汗流浹背详拙。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工蔓同, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饶辙,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓斑粱,卻偏偏與公主長得像弃揽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子则北,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容