卷積神經網絡(CNN)張量(圖像)的尺寸和參數計算(深度學習)

 分享一些公式計算張量(圖像)的尺寸,以及卷積神經網絡(CNN)中層參數的計算。網絡

AlexNet網絡爲例,如下是該網絡的參數結構圖。ide

 

AlexNet網絡的層結構以下:spa

1.Input:       圖像的尺寸是227*227*3.3d

2.Conv-1:    1層卷積層的核大小11*1196個核。步長(stride)4,邊緣填充(padding)爲0blog

3.MaxPool-1:     池化層-1Conv-1進行池化,尺寸爲3*3,步長爲2.ci

4.Conv-2:    核尺寸:5*5,數量:256,步長:1,填充:2table

5.MaxPool-2:     尺寸:3*3,步長:2class

6.Conv-3: 核尺寸:3*3,數量:384,步長:1,填充:1神經網絡

7: Conv-4:   結構同Conv-3.im

8. Conv-5:   核尺寸:3*3,數量:256,步長:1,填充:1

9. MaxPool-3: 尺寸:3*3,步長:2

10.FC-1:       全鏈接層1共有4096個神經元。

11.FC-1:       全鏈接層2共有4096個神經元。

12.FC-3:       全鏈接層3共有1000個神經元。

 

接下來,咱們對以上的網絡結構進行描述:

1.如何計算張量(圖像)的尺寸;

2.如何計算網絡的總參數;

 

卷積層(Conv Layer)的輸出張量(圖像)的大小

定義以下:

O=輸出圖像的尺寸。

I=輸入圖像的尺寸。

K=卷積層的核尺寸

N=核數量

S=移動步長

P =填充數

輸出圖像尺寸的計算公式以下:

 

輸出圖像的通道數等於核數量N

示例:AlexNet中輸入圖像的尺寸爲227*227*3.第一個卷積層有96個尺寸爲11*11*3的核。步長爲4,填充爲0.

輸出的圖像爲55*55*96(每一個核對應1個通道)。

 

池化層(MaxPool Layer)的輸出張量(圖像)的大小

定義以下:

O=輸出圖像的尺寸。
I=輸入圖像的尺寸。
S=移動步長
PS=池化層尺寸

輸出圖像尺寸的計算公式以下:

不一樣於卷積層,池化層的輸出通道數不改變。

示例:每1層卷積層後的池化層的池化層尺寸爲3*3,步長爲2。根據前面卷積層的輸出爲55*55*96。池化層的輸出圖像尺寸以下:

 

輸出尺寸爲27*27*96

 

全鏈接層(Fully Connected Layer)的輸出張量(圖像)的大小

全鏈接層輸出向量長度等於神經元的數量。

 

經過AlexNet改變張量(圖像)的尺寸的結構以下:

AlexNet網絡中,輸出的圖像尺寸爲227*227*3.

Conv-1,尺寸變爲55*55*96,池化層後變爲27*27*96

Conv-2,尺寸變爲27*27*256,池化層後變爲13*13*256.

Conv-3,尺寸變爲13*13*384,通過Conv-4Conv-5變回13*13*256.

最後,MaxPool-3尺寸縮小至6*6*256.

圖像經過FC-1轉換爲向量4096*1.經過FC-2尺寸未改變.最終,經過FC-3輸出1000*1的尺寸張量.

 

接下來,計算每層的參數數量.

Conv Layer參數數量

CNN,每層有兩種類型的參數:weights biases.總參數數量爲全部weightsbiases的總和.

定義以下:

WC=卷積層的weights數量

BC=卷積層的biases數量

PC=全部參數的數量

K=核尺寸

N=核數量

C =輸入圖像通道數

 

卷積層中,核的深度等於輸入圖像的通道數.因而每一個核有K*K個參數.而且有N個核.由此得出如下的公式.

示例:AlexNet網絡中,1個卷積層,輸入圖像的通道數(C)3,核尺寸(K)11*11,核數量是96. 該層的參數計算以下:

  計算出Conv-2, Conv-3, Conv-4, Conv-5 的參數分別爲 614656 , 885120, 1327488 884992.卷積層的總參數就達到3,747,200.

 

MaxPool Layer參數數量

沒有與MaxPool layer相關的參數量.尺寸,步長和填充數都是超參數.

 

Fully Connected (FC) Layer參數數量

CNN中有兩種類型的全鏈接層.1種是鏈接到最後1個卷積層,另外1種的FC層是鏈接到其餘的FC.兩種狀況咱們分開討論.

類型1:鏈接到Conv Layer

定義以下:

Wcf= weights的數量

Bcf= biases的數量
O= 前卷積層的輸出圖像的尺寸

N = 前卷積層的核數量

F = 全鏈接層的神經元數量

示例: AlexNet網絡中第1FC層鏈接至Conv Layer.該層的O6,N256,F4096.

參數數目遠大於全部Conv Layer的參數和.

 

類型2:鏈接到FC Layer

定義以下:

Wff= weights的數量

Bff= biases的數量

Pff= 總參數的數量

F= 當前FC層的神經元數量

F-1 = FC層的神經元數量

  

示例:AlexNet的最後1個全鏈接層,   F-1=4096,F=1000 .

 


AlexNet網絡中張量(圖像)尺寸和參數數量

AlexNet網絡中總共有5個卷積層和3個全鏈接層.總共有62,378,344個參數.如下是彙總表.

Layer Name

Tensor Size

Weights

Biases

Parameters

Input Image

227x227x3

0

0

0

Conv-1

55x55x96

34,848

96

34,944

MaxPool-1

27x27x96

0

0

0

Conv-2

27x27x256

614,400

256

614,656

MaxPool-2

13x13x256

0

0

0

Conv-3

13x13x384

884,736

384

885,120

Conv-4

13x13x384

1,327,104

384

1,327,488

Conv-5

13x13x256

884,736

256

884,992

MaxPool-3

6x6x256

0

0

0

FC-1

4096×1

37,748,736

4,096

37,752,832

FC-2

4096×1

16,777,216

4,096

16,781,312

FC-3

1000×1

4,096,000

1,000

4,097,000

Output

1000×1

0

0

0

Total

     

62,378,344

相關文章
相關標籤/搜索