caffe原始碼 卷積層

2021-08-30 15:10:03 字數 1059 閱讀 9524

input: 3 * 5 * 5 (c * h * w)

pading: 1

步長: 2

卷積核: 2 * 3 * 3 * 3 ( n * c * k * k )

output: 2 * 3 * 3 ( c * h * w )

如下圖所示:

首先需要理解caffe裡面的im2col和col2im

然後 卷積層 其實和 全連線層 差不多了

input: 3 * 4 * 4  ( c * h * w )

卷積核: 1 * 3 * 3 * 3 ( n * c * h * w 只考慮乙個卷積核的情況 )

output:1* ( 3 * 3 * 3 ) * ( 2 * 2 ) ( n * h * w )

如下圖所示:

卷積核: m * c * k * k

m 個卷積核

步長: stride

填充: pad

擴充套件: dilation

output: 1 * m * h * w

h = ( h + 2 * pad - dilation * ( k - 1 ) ) / stride + 1

w = ( w + 2 * pad - dilation * ( k - 1 ) ) / stride + 1

input: 1 * ( c * k * k ) * ( h * w )

weight: m * (c * k * k)

bias: m * 1

output: 1 * m * h * w

caffe原始碼 之 Relu層

本文主要實現caffe框架中 src caffe layers relu layer.cpp檔案,該檔案實現的是啟用函式relu。relu是近些年非常流行的啟用函式。相比於sigmoid與tanh,它具有一定的優越性,這三者對比可見它的函式公式是f x max 0,x 換句話說,這個啟用函式就是乙個...

Roi Pooling層caffe原始碼解讀

在看fasterrcnn以及和maskrcnn的時候,發現自己對fasterrcnn的roi pooling層的原理還是不是很明白,之前只是知道roi pooling是將rpn輸出的乙個roi的區域對映成乙個固定大小的map,再送入後面的分類層進行分類。最近看了下roi pooling層的原始碼,頓...

Caffe之Scale層原始碼

最近要對模型進行壓縮使用slimming,因此需要scale層對scale diff進行l1正則。所以對原始碼進行了閱讀。公式 y ax b。公式比較簡單。上述公式的意思是,對feature map乘以a,並加b。乙個feature map共用乙個a,因此 a的維度是 c 這是理解原始碼的前提。反向...