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


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

 

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

以AlexNet網絡為例,以下是該網絡的參數結構圖。

 

AlexNet網絡的層結構如下:

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

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

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

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

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

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

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

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-4和Conv-5變回13*13*256.

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

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

 

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

Conv Layer參數數量

在CNN中,每層有兩種類型的參數:weights 和biases.總參數數量為所有weights和biases的總和.

定義如下:

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網絡中第1個FC層連接至Conv Layer.該層的O為6,N為256,F為4096.

參數數目遠大於所有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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM