VGG16网络
轉(zhuǎn)載
https://blog.csdn.net/weixin_43496706/article/details/101210981
1.網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)卷積核大小和卷積層數(shù),VGG共有6中配置,分別為A,A-LRN,B,C,D,E,其中D和E兩種最為常用,即i我們所說的VGG16和VGG19。看下圖紅色框所示。具體為:
在這里插入圖片描述
在這里插入圖片描述
2.VGG16的卷積核
卷積層全部都是33的卷積核,用上圖中conv3-xxx表示,xxx表示通道數(shù)。其步長為1,用padding=same填充。
池化層的池化核為22
3. 卷積計(jì)算
1)輸入圖像尺寸為224x224x3,經(jīng)64個(gè)通道為3的3x3的卷積核,步長為1,padding=same填充,卷積兩次,再經(jīng)ReLU激活,輸出的尺寸大小為224x224x64
2)經(jīng)max pooling(最大化池化),濾波器為2x2,步長為2,圖像尺寸減半,池化后的尺寸變?yōu)?12x112x64
3)經(jīng)128個(gè)3x3的卷積核,兩次卷積,ReLU激活,尺寸變?yōu)?12x112x128
4)max pooling池化,尺寸變?yōu)?6x56x128
5)經(jīng)256個(gè)3x3的卷積核,三次卷積,ReLU激活,尺寸變?yōu)?6x56x256
6)max pooling池化,尺寸變?yōu)?8x28x256
7)經(jīng)512個(gè)3x3的卷積核,三次卷積,ReLU激活,尺寸變?yōu)?8x28x512
8)max pooling池化,尺寸變?yōu)?4x14x512
9)經(jīng)512個(gè)3x3的卷積核,三次卷積,ReLU,尺寸變?yōu)?4x14x512
10)max pooling池化,尺寸變?yōu)?x7x512
11)然后Flatten(),將數(shù)據(jù)拉平成向量,變成一維51277=25088。
11)再經(jīng)過兩層1x1x4096,一層1x1x1000的全連接層(共三層),經(jīng)ReLU激活
12)最后通過softmax輸出1000個(gè)預(yù)測結(jié)果
1)輸入層有0個(gè)參數(shù),所需存儲(chǔ)容量為224x224x3=150k
2)對(duì)于第一層卷積,由于輸入圖的通道數(shù)是3,網(wǎng)絡(luò)必須要有通道數(shù)為3的的卷積核,這樣的卷積核有64個(gè),因此總共有(3x3x3)x64 = 1728個(gè)參數(shù)。
所需存儲(chǔ)容量為224x224x64=3.2M
計(jì)算量為:輸入圖像224×224×3,輸出224×224×64,卷積核大小3×3。所以Times=224×224×3x3×3×64=8.7×107
3)池化層有0個(gè)參數(shù),所需存儲(chǔ)容量為 圖像尺寸x圖像尺寸x通道數(shù)=xxx k
4)全連接層的權(quán)重參數(shù)數(shù)目的計(jì)算方法為:前一層節(jié)點(diǎn)數(shù)×本層的節(jié)點(diǎn)數(shù)。因此,全連接層的參數(shù)分別為:
7x7x512x4096 = 1027,645,444
4096x4096 = 16,781,321
4096x1000 = 4096000
按上述步驟計(jì)算的VGG16整個(gè)網(wǎng)絡(luò)總共所占的存儲(chǔ)容量為24M*4bytes=96MB/image 。所有參數(shù)為138M
VGG16具有如此之大的參數(shù)數(shù)目,可以預(yù)期它具有很高的擬合能力;但同時(shí)缺點(diǎn)也很明顯:
即訓(xùn)練時(shí)間過長,調(diào)參難度大。
需要的存儲(chǔ)容量大,不利于部署。
時(shí)間復(fù)雜度
1)卷積層的時(shí)間復(fù)雜度大致是同一數(shù)量級(jí)的
2)隨著網(wǎng)絡(luò)深度加深,卷積層的空間復(fù)雜度快速上升(每層的空間復(fù)雜度是上層的兩倍)
3)全連接層的空間復(fù)雜度比卷積層的最后一層還大
特點(diǎn)
1)小的卷積核 :3x3的卷積核
2)小的池化核 :2x2的池化核
3)層數(shù)更深特征圖更寬 :基于前兩點(diǎn)外,由于卷積核專注于擴(kuò)大通道數(shù)、池化專注于縮小寬和高,使得模型架構(gòu)上更深更寬的同時(shí),計(jì)算量緩慢的增加;
4)全連接轉(zhuǎn)卷積 :網(wǎng)絡(luò)測試階段將訓(xùn)練階段的三個(gè)全連接替換為三個(gè)卷積,測試重用訓(xùn)練時(shí)的參數(shù),使得測試得到的全卷積網(wǎng)絡(luò)因?yàn)闆]有全連接的限制,因而可以接收任意寬或高為的輸入。
感受野
VGG主要使用較小的卷積核代替較大的卷積核。在VGG16中,作者認(rèn)為兩個(gè)3x3的卷積堆疊獲得的感受野大小,相當(dāng)一個(gè)5x5的卷積;而3個(gè)3x3卷積的堆疊獲取到的感受野相當(dāng)于一個(gè)7x7的卷積。這樣做一方面可以減少參數(shù),增加了網(wǎng)絡(luò)深度,另一方面相當(dāng)于進(jìn)行了更多的非線性映射,可以增加網(wǎng)絡(luò)的擬合/表達(dá)能力。
在這里插入圖片描述
1)替代性
下圖為2個(gè)3x3的卷積核代替1個(gè)5x5
在這里插入圖片描述
下圖為3個(gè)3x3的卷積核代替1個(gè)7x7
在這里插入圖片描述
2)參數(shù)減少
對(duì)于2個(gè)3x3卷積核,所用的參數(shù)總量為2x(3x3)xchannels, 對(duì)于1個(gè)5x5卷積核為5x5xchannels
對(duì)于3個(gè)3x3卷積核,所用的參數(shù)總量為3x(3x3)xchannels, 對(duì)于1個(gè)7x7卷積核為7x7xchannels
因此可以顯著地減少參數(shù)的數(shù)量。
VGG16共有6個(gè)塊結(jié)構(gòu),每個(gè)塊結(jié)構(gòu)中的通道數(shù)相同。如下圖藍(lán)色所示。因?yàn)榫矸e層和全連接層都有權(quán)重系數(shù),也被稱為權(quán)重層,其中卷積層13層,全連接3層,池化層不涉及權(quán)重。所以共有13+3=16層。
總結(jié)
- 上一篇: 算法笔记--最短路径之dijkstra算
- 下一篇: matlab均值滤波实现