卷積網路計算

2021-09-22 10:17:51 字數 3029 閱讀 8385

一、示例

輸入:227 * 227 * 3

這個影象被96個大小規格為11 * 11 * 3(同樣也是三通道了)的卷積核,進行特徵提取。

1、針對乙個卷積核:

乙個卷積核有多少個神經元?

乙個感受野(11乘11乘3)即卷積核的大小,對應乙個神經元,即乙個卷積核包含的神經元的個數等於經過該卷積核後生成的特徵圖的大小(55乘55),此處用了96個卷積核所以神經元總數:55乘55乘96

乙個卷積核有多少個引數?

即卷積核的大小再加偏置(11乘11乘3+1),注意乙個卷積核的所有神經元共享該組引數

連線數=引數*特徵圖大小

c1層(卷積層):是乙個卷積層,由6個特徵圖feature map構成。特徵圖中每個神經元與5*5的鄰域(濾波器)相連。

特徵圖大小:特徵圖的大小28*28,這樣能防止輸入的連線掉到邊界之外(32-5+1=28)。

feature map邊長大小的具體計算參見:

引數個數:c1有156個可訓練引數 (每個濾波器55=25個unit引數和乙個bias引數,一共6個濾波器,共(55+1)*6=156個引數)

鏈結個數/flops個數::(5*5+1)6 (2828)=122,304個。左邊是濾波器在輸入層滑過的神經元個數,右邊是c1層每個feature map的神經元個數,左右對應關係是1對2828,相乘即為連線數。(每個鏈結對應1次計算,由wa+b可知,每個引數參與1次計算,所以1個單位的偏置b也算進去)

s2層(下取樣層):是乙個下取樣層,有6個1414的特徵圖。特徵圖中的每個單元與c1中相對應特徵圖的22鄰域相連線。

特徵圖大小:每個單元的2*2感受野並不重疊,因此s2中每個特徵圖的大小是c1中特徵圖大小的1/4(行和列各1/2)

引數個數:s2層有 12個 (6*(1+1)=12) 可訓練引數。s2層 每個濾波器路過的4個鄰域 的4個輸入相加,乘以1個可訓練引數w,再加上1個可訓練偏置b(即乙個濾波器對應兩個引數)。(對於子取樣層,每乙個特徵對映圖的的可變引數需要考慮你使用的取樣方式而定,如文中的取樣方式,每乙個特徵對映圖的可變引數數量為2個,有的取樣方式不需要引數)

鏈結個數/flops個數:5880個連線,( (2*2+1)*6 1414=5880) 。左邊是濾波器在c1層滑過的神經元個數,右邊是s2層每個feature map的神經元個數,相乘即為連線數。

c3層(卷積層):是乙個卷積層,它同樣通過5x5的卷積核去卷積層s2,然後得到的特徵map就只有10x10個神經元,但是它有16種不同的卷積核,所以就存在16個特徵map了。

特徵圖大小:c3中每個特徵圖由s2中所有6個或者幾個特徵map組合(幾個濾波器計算的神經元的值 相加 合併成乙個神經元)而成。

為什麼不把s2中的每個特徵圖連線到每個c3的特徵圖呢?原因有2點。

第1,不完全的連線機制將連線的數量保持在合理的範圍內。

第2,也是最重要的,其破壞了網路的對稱性。由於不同的特徵圖有不同的輸入,所以迫使他們抽取不同的特徵(希望是互補的)。(14-5+1=10)

引數個數:例如,存在的乙個方式是:

c3的前6個特徵圖:相當於需要6組濾波器,每組以s2中 3個相鄰 特徵圖子集 為輸入,共享乙個偏置。(c3每個特徵圖 由 s2中3個特徵圖分別用不同濾波器 再加和得到)

c3的接下來6個特徵圖:相當於需要6組濾波器,每組以s2中 4個相鄰 特徵圖子集 為輸入,共享乙個偏置。(1對4)

c3的接下來3個特徵圖:相當於需要3組濾波器,每組以s2中 4個不相鄰 特徵圖子集 為輸入,共享乙個偏置。(1對4)

c3的最後1個特徵圖:相當於需要1組濾波器,每組將s2中所有 特徵圖 為輸入,共享乙個偏置。(1對6)

這樣c3層有1516個可訓練引數。計算:6*(3*25+1)+6*(4*25+1)+3*(4*25+1)+(25*6+1)=1516。此處,c3個特徵圖由 s2中n個卷積結果合併,然後共享1個b,組合計算得到。
s4層(下取樣層):是乙個下取樣層,由16個55大小的特徵圖構成。特徵圖中的每個單元與c3中相應特徵圖的22鄰域相連線,跟c1和s2之間的連線一樣。

特徵圖大小:55大小。每個單元的22感受野並不重疊,因此s2中每個特徵圖的大小是c1中特徵圖大小的1/4(行和列各1/2)

引數個數:s4層有32個可訓練引數。(每個特徵圖1個因子w和1個偏置b,16*(1+1)=32)

c5層(卷積層或第乙個全連線層):是乙個卷積層,有120個特徵圖(或者說神經元)。每個單元與s4層的全部16個單元的5*5鄰域(與s4層特徵圖一樣大)相連。(120組濾波器, 每組16個濾波器,分別與 s4層16個特徵圖 進行卷積, 每組得到c5層的乙個神經元/特徵圖)

特徵圖大小:由於s4層特徵圖的大小也為55(同濾波器一樣),故c5特徵圖的大小為11。(5-5+1=1), 這構成了s4和c5之間的全連線。之所以仍將c5標示為卷積層而非全相聯層,是因為如果lenet-5的輸入變大,而其他的保持不變,那麼此時特徵圖的維數就會比1*1大。

引數個數:120* (1655+1)=48120個。濾波器個數12016個,所以w有1201655個,同組16個濾波器共用乙個b,所以有120個b。

鏈結個數/flops個數:4812011, 左邊是濾波器滑過的神經元個數,右邊是c5層特徵圖大小(其實現在已經變成了單個神經元,大小1*1),相乘即為連線數,此處也即flops個數。

f6層(全連線層):雖然是全連線層,得到f6層每個神經元 由 每組120個1*1的濾波器對c5層卷積,一共84組濾波器,得到84個神經元。

特徵圖大小:有84個單元(之所以選這個數字的原因來自於輸出層的設計),與c5層全相連。

引數個數:有 84* (120*(11)+1)=10164 個可訓練引數。如同經典神經網路,f6層計算輸入向量(120)和權重向量(11)之間的點積,再加上乙個偏置(+1)。然後將其傳遞給sigmoid函式產生單元i的乙個狀態。

輸出層:由歐式徑向基函式(euclidean radial basis function)單元組成,每類乙個單元,每個有84個輸入。

卷積神經網路引數計算及卷積層輸出尺寸計算

一 卷積神經網路引數計算 cnn乙個牛逼的地方就在於通過感受野和權值共享減少了神經網路需要訓練的引數的個數,所謂權值共享就是同乙個feature map中神經元權值共享,該feature map中的所有神經元使用同乙個權值。因此引數個數與神經元的個數無關,只與卷積核的大小及feature map的個...

一維卷積神經網路 卷積神經網路中的計算

卷積的基本介紹 卷積操作後張量的大小計算 卷積參數量的計算 卷積flops的計算 感受野的計算 卷積神經網路中的卷積是指定義好卷積核 kernel 並對影象 或者特徵圖,feature map 進行滑動匹配,即對應位置相乘再相加。其特點就在於能夠捕捉區域性的空間特徵。具體過程如下圖所示 圖1 二維卷...

幾種輕量化卷積網路計算量

就近年提出的四個輕量化模型進行學習和對比,四個模型分別是 mobilenet squeezenet shufflenet。m表示輸入特徵的通道數,n表示輸出特徵的通道數。卷積核大小為k k,輸出特徵圖大小為f f.1.普通卷積網路的計算量 k k m n f f.普通卷積網路的參數量 k k m n...