日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习之学习(1-1) VGG16网络结构详解

發(fā)布時(shí)間:2023/12/31 pytorch 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习之学习(1-1) VGG16网络结构详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?參見

  • ??????【深度學(xué)習(xí)】全面理解VGG16模型_florrie-CSDN博客_vgg16模型介紹
  • 深度學(xué)習(xí)-VGG16原理詳解_é£的博客-CSDN博客_vgg16
  • 1、網(wǎng)絡(luò)結(jié)構(gòu)

    根據(jù)卷積核大小和卷積層數(shù),VGG共有6中配置,分別為A,A-LRN,B,C,D,E,其中D和E兩種最為常用,即i我們所說的VGG16和VGG19。

    具體為:

    1. 卷積-卷積-池化-卷積-卷積-池化-卷積-卷積-卷積-池化-卷積-卷積-卷積-池化-卷積-卷積-卷積-池化-全連接-全連接-全連接 。

    2. 通道數(shù)分別為64,128,512,512,512,4096,4096,1000。卷積層通道數(shù)翻倍,直到512時(shí)不再增加。通道數(shù)的增加,使更多的信息被提取出來。全連接的4096是經(jīng)驗(yàn)值,當(dāng)然也可以是別的數(shù),但是不要小于最后的類別。1000表示要分類的類別數(shù)。

    3. 所有的激活單元都是Relu 。

    4. 用池化層作為分界,VGG16共有6個(gè)塊結(jié)構(gòu),每個(gè)塊結(jié)構(gòu)中的通道數(shù)相同。因?yàn)榫矸e層和全連接層都有權(quán)重系數(shù),也被稱為權(quán)重層,其中卷積層13層,全連接3層,池化層不涉及權(quán)重。所以共有13+3=16權(quán)重層。

    5. 對(duì)于VGG16卷積神經(jīng)網(wǎng)絡(luò)而言,其13層卷積層和5層池化層負(fù)責(zé)進(jìn)行特征的提取,最后的3層全連接層負(fù)責(zé)完成分類任務(wù)。



    vgg16總共有16層,13個(gè)卷積層和3個(gè)全連接層,第一次經(jīng)過64個(gè)卷積核的兩次卷積后,采用一次pooling,第二次經(jīng)過兩次128個(gè)卷積核卷積后,再采用pooling,再重復(fù)兩次三個(gè)512個(gè)卷積核卷積后,再pooling,最后經(jīng)過三次全連接。

    2、VGG16的卷積核

  • conv3-xxx:卷積層全部都是3*3的卷積核,用上圖中conv3-xxx表示,xxx表示通道數(shù)。其步長為1,用padding=same填充。池化層的池化核為2*2
  • input(224x224 RGB image) :指的是輸入圖片大小為224*244的彩色圖像,通道為3,即224*224*3;
  • maxpool :是指最大池化,在vgg16中,pooling采用的是2*2的最大池化方法;
  • FC-4096 :指的是全連接層中有4096個(gè)節(jié)點(diǎn),同樣地,FC-1000為該層全連接層有1000個(gè)節(jié)點(diǎn);
  • padding:指的是對(duì)矩陣在外邊填充n圈,padding=1即填充1圈,5X5大小的矩陣,填充一圈后變成7X7大小;
  • 最后補(bǔ)充,vgg16每層卷積的滑動(dòng)步長stride=1,padding=1,卷積核大小為333;
  • 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é)果
    VGG16模型所需要的內(nèi)存容量

    ?


    4、什么是卷積??



    image為需要進(jìn)行卷積的圖片,而convolved feature為卷積后得到的特征圖;那么什么是卷積的過濾器也就是filter呢?圖中黃色矩陣即為filter,image為5X5大小的一維圖像,filter為3X3大小的一維矩陣;卷積過程是:filter與image對(duì)應(yīng)位置相乘再相加之和,得到此時(shí)中心位置的值,填入第一行第一列,然后在移動(dòng)一個(gè)格子(stride=1),繼續(xù)與下一個(gè)位置卷積…最后得到是3X3X1的矩陣。
    ——這里需要注明:卷積后的結(jié)果矩陣維度=(image矩陣維數(shù)-filter矩陣維數(shù)+2xpad)/2+1,對(duì)應(yīng)上圖即寬width:3=(5-3+2x0)/1+1,高h(yuǎn)eight:3=(5-3+2x0)/1+1;


    在這里補(bǔ)充經(jīng)過padding填充,那么卷積后圖片大小不會(huì)發(fā)生改變,如5X5的圖像大小,padding=1變成7X7,再用3X3的filter進(jìn)行卷積,那么卷積后的寬高為(7-3+2x1)/1+1=7。

    ?

    ?

    5、什么是maxpool?

    最大池化就是取filter對(duì)應(yīng)區(qū)域內(nèi)最大像素值替代該像素點(diǎn)值,其作用是降維。在這里,池化使用的濾波器都是2*2大小,因此池化后得到的圖像大小為原來的1/2。下圖為最大池化過程:

    ?

    6.1、從input到conv1


    由于224不太好計(jì)算,那么這里使用input圖片大小為300x300x3舉例:
    圖片:

    首先兩個(gè)黃色的是卷積層,是VGG16網(wǎng)絡(luò)結(jié)構(gòu)十六層當(dāng)中的第一層(Conv1_1)和第二層(Conv1_2),合稱為Conv1。

    那么,第一層怎么將300x300x3的矩陣變成一個(gè)300x300x64的呢??

    假設(shè)RGB圖像為藍(lán)色框,橙色方塊為3x3x3的卷積核(即filter),那么卷積后得到的圖像應(yīng)為298x298x1(此處沒有進(jìn)行padding,步長為1),但是經(jīng)過填充一圈的矩陣,所以得到的結(jié)果為300x300x1,在這層中有64個(gè)卷積核,那么原來的300x300x1就變成了300x300x64。

    ?

    6.2、從conv1到conv2之間的過渡


    在上面的結(jié)構(gòu)圖可以看到,第一層卷積后要經(jīng)過pooling,才到第二層,那么:

    這層,pooling使用的filter是2x2x64,且步長為2,那么得到的矩陣維數(shù)剛好為原來的一半,第三個(gè)維度64不改變,因?yàn)槟莻€(gè)指的是filter個(gè)數(shù)。

    6.3、conv2到conv3


    我們從上面的過程中知道了,input為300x300x3的圖片,經(jīng)過第一層之后變成150x150x64,那么第二層里面有128個(gè)卷積核,可以推出經(jīng)過第二層后得到是75x75x128。

    6.4、進(jìn)入conv3



    可知,第三層有256個(gè)卷積核,那么得到就是75x75x256

    ?

    6.5、從conv3到conv4之間的過渡



    這里75是奇數(shù),經(jīng)過pad之后變成偶數(shù)76,那么就得到結(jié)果為38x38x256
    其余的過程與上述一樣,最終得到10x10x512。

    7、最后到三層全連接FC層


    在全連接層中的每一個(gè)節(jié)點(diǎn)都與上一層每個(gè)節(jié)點(diǎn)連接,把前一層的輸出特征都綜合起來。在VGG16中,第一個(gè)全連接層FC1有4096個(gè)節(jié)點(diǎn),上一層pool之后得到是10x10x512=51200個(gè)節(jié)點(diǎn),同樣第二個(gè)全連接層FC2也有4096個(gè)節(jié)點(diǎn),最后一個(gè)FC3有1000個(gè)節(jié)點(diǎn)。

    4. 權(quán)重參數(shù)(不考慮偏置)?
    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ǔ)容量大,不利于部署。?
    5. 時(shí)間復(fù)雜度?
    1)卷積層的時(shí)間復(fù)雜度大致是同一數(shù)量級(jí)的 2)隨著網(wǎng)絡(luò)深度加深,卷積層的空間復(fù)雜度快速上升(每層的空間復(fù)雜度是上層的兩倍) 3)全連接層的空間復(fù)雜度比卷積層的最后一層還大?
    6. 特點(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)闆]有全連接的限制,因而可以接收任意寬或高為的輸入。?
    7. 感受野?
    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

    ?

    ?

    ?

    ?

    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ù)量
    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的深度学习之学习(1-1) VGG16网络结构详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。