<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 設計應用 > 別再用VGG了!一文帶你看透 RepVGG怎么重鑄VGG榮光

別再用VGG了!一文帶你看透 RepVGG怎么重鑄VGG榮光

作者: 時(shí)間:2024-04-25 來(lái)源:人工智能-泰羅 收藏

寫(xiě)在前面

算是非常經(jīng)典的網(wǎng)絡(luò )了,它是由牛津大學(xué)計算機視覺(jué)組(Visual Geometry Group)和Google DeepMind公司的研究員一起研發(fā)的 “直筒型“ 的網(wǎng)絡(luò )。既然在看這篇文章,想必已經(jīng)對十分熟悉了。有一些特別明顯的缺陷,如網(wǎng)絡(luò )的參數量較多,模型檢測準確率也不是很好,總之VGG網(wǎng)絡(luò )效果不理想。之后的一段時(shí)間,人們總是將網(wǎng)絡(luò )變得更寬更深(如GoogleNet、ResNet),以期待達到更優(yōu)異的效果。

本文引用地址:http://dyxdggzs.com/article/202404/458056.htm

事實(shí)上也是這樣,更深更寬的網(wǎng)絡(luò )更容易滿(mǎn)足需求。這樣,VGG變得鮮有問(wèn)津。這時(shí),一位大佬——丁霄漢,相信科學(xué)技術(shù)總是螺旋式的上升,撿起了VGG模型,給其注入了新思想,便橫空出世。

首先我們先來(lái)解讀一些的取名含義,Rep全稱(chēng)為re- parameterization(重參數化),Rep是指首先構造一系列結構(一般用于訓練),并將其參數等價(jià)轉換為另一組參數(一般用于推理),從而將這一系列結構等價(jià)轉換為另一系列結構。估計這段話(huà)大家讀的似懂非懂,對于來(lái)說(shuō),就是在訓練階段會(huì )訓練一個(gè)多分支模型,然后利用重參數化將多分支模型等價(jià)轉換為單路模型,最后在推理時(shí)使用單路模型。

為什么要這樣做呢?因為在訓練過(guò)程中往往多分支的結構會(huì )得到更高的性能收益,即在訓練時(shí)采用多分支結構來(lái)提升網(wǎng)絡(luò )性能,在推理時(shí),將多分支結構轉化為單路結構,這樣會(huì )使推理速度大大加快!

RepVGG結構

聽(tīng)了上文的講解,不知大家對RepVGG有了多少了解,還有很多疑惑是正常的,不要著(zhù)急,下面會(huì )詳細的對RepVGG的結構和設計進(jìn)行分析RepVGG模型具有一個(gè)類(lèi)似于VGG的拓撲結構,沒(méi)有任何分支,模型只采用了3x3的卷積核和Relu激活函數?!咀⒁猓哼@里的RepVGG模型指的是推理(inference)時(shí)采用的結構,訓練(training)時(shí)結構不是這樣的】模型的結構如下圖所示:


從上圖我們可以看出,在RepVGG的訓練階段,其結構借鑒了ResNet,同時(shí)引入了殘差結構和1x1的卷積分支,在論文中也證明了加入殘差結構和1x1的卷積均可以提升網(wǎng)絡(luò )的性能,如下圖所示:


至于RepVGG的推理階段,其結構就是簡(jiǎn)單的3x3卷積同Relu函數的結合。

多路模型轉單路模型

這一部分絕對是RepVGG的核心了?。?!re- parameterization(重參數化)要做的其實(shí)就是要將多路模型轉成單路模型。首先我們要搞清楚我們要轉換的對象,即多路模型指什么?單路模型指什么?這兩個(gè)模型在上文已經(jīng)提及,多路模型指的就是在訓練階段的模型,而單路模型指的是在推理階段的模型,如下圖:


現在我們的目標有了,即將上圖右側模型轉換成左側。仔細觀(guān)察左右兩圖的區別,可以看出我們只需要將上圖黃框部分進(jìn)行轉換就可以了。下面來(lái)看看作者是怎么進(jìn)行轉換的下圖大致描述了多路模型轉換成單路模型的過(guò)程,從①到②涉及到了將3x3卷積和BN層的合并、1x1卷積轉換為3x3卷積及殘差模塊等效為特殊權重的卷積層?!咀⒁猓嚎赡苡行』锇榘l(fā)現上文圖中的卷積后都沒(méi)有BN層,為什么這里有了了,其實(shí)一般卷積后都會(huì )跟上BN進(jìn)行歸一化,上圖只是省略了網(wǎng)絡(luò )的一些細節】


1、卷積層和BN層的合并


上圖展示了卷積層和BN層合并的推導過(guò)程,非常容易理解。但需要注意的是這里的卷積層含有偏置b,往往現在帶有BN結構的卷積都不含偏置b了,論文中的推導結構就沒(méi)帶偏置b,如下圖所示:可以看出,下式和上圖推導結構是一致的【符號表示有區別,沒(méi)有偏置項b】


2、1x1卷積轉換為3x3卷積

1x1卷積怎么轉化為3x3的卷積呢?不知道大家有沒(méi)有什么想法?♂??♂??♂?我覺(jué)得這個(gè)大家應該是很容易就可以想到的——補兩圈0!所以這部分其實(shí)是沒(méi)什么好說(shuō)的,論文中也是一筆帶過(guò)。但這里我還是想提醒大家注意一下,因為我們的三路輸出最后會(huì )通過(guò)Add操作,因此在使用3x3卷積時(shí)應該使用same形式,即保證輸入輸出的特征圖維度不變

3、殘差模塊轉換為3x3卷積

我們知道殘差模塊就是一個(gè)恒等映射,即要求輸入等于輸出。這一步該怎么實(shí)現呢?這里我們可以使用卷積核權重為1的1x1卷積,因為這樣的卷積核不會(huì )改變輸入特征圖的值,這樣我們就可以將殘差模塊等效為1x1的卷積操作了。之后再利用第2步將1x1的卷積轉化成3x3的卷積。


卷積的可加性原理

完成了上述三步,我們就可以實(shí)現從①到②的變換,即現在我們得到了含3路3x3卷積的結構,接下來(lái)就是要實(shí)現從②到③的轉化,即要將含3路3x3卷積的結構變換成只有1路3x3卷積的結構???這里需要利用卷積的可加性原理,即如果幾個(gè)大小兼容的二維核在相同的輸入上以相同的步幅操作以產(chǎn)生相同分辨率的輸出,并且它們的輸出被求和,我們可以將這些核在相應的位置相加,從而得到一個(gè)產(chǎn)生相同輸出的等效核。這句話(huà)很好地總結了可加性原理,但是當我開(kāi)始看到這句話(huà)的時(shí)候也是不明白為什么,后面也是自己畫(huà)了一些圖,就恍然大悟,所以我想說(shuō)很多時(shí)候我們應該多動(dòng)手,好腦子不如爛筆頭下面給出整理的圖片幫助大家理解,如下圖:



看了上圖可以發(fā)現,不管我們是先進(jìn)行卷積得到結果后再進(jìn)行Add操作,還是先將卷積核的值先相加得到新的卷積核,然后再進(jìn)行卷積,所得到的結果是一樣的,這就是卷積的可加性。由此可知,我們將②變?yōu)棰燮鋵?shí)只需要將三個(gè)3x3的卷積核的值進(jìn)行相加即可!

實(shí)驗結果

上面其實(shí)就把RepVGG最核心的給講完了,下面來(lái)看一下RepVGG的效果叭??梢钥闯鯮epVGG的效果還是很好的,特別的表5中RepVGG-B2的FLOPs是EfficientNet-B3的10倍,但1080Ti上的速度是后者的2倍,這說(shuō)明前者的計算密度是后者的20余倍。



希望本文章對你有所幫助!感謝支持!




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>