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