CVPR2022 | 在線Re-Param | OREPA讓AI訓(xùn)練速度進(jìn)一步加快,精度略勝RepVGG!
1簡(jiǎn)介結(jié)構(gòu)重參化在各種計(jì)算機(jī)視覺(jué)任務(wù)中引起了越來(lái)越多的關(guān)注。它的目的是提高深度模型的性能,而不引入任何推理時(shí)間成本。雖然這種模型在推理過(guò)程中很有效,但它嚴(yán)重依賴于復(fù)雜的training-time block來(lái)實(shí)現(xiàn)較高的準(zhǔn)確性,從而導(dǎo)致了巨大的額外訓(xùn)練成本。
在本文中提出了在線卷積重參化(OREPA),一個(gè)兩階段的pipeline,旨在通過(guò)將復(fù)雜的training-time block壓縮成單個(gè)卷積來(lái)減少巨大的訓(xùn)練開(kāi)銷。為了實(shí)現(xiàn)這一目標(biāo),本文引入了一個(gè)線性縮放層,以更好地優(yōu)化在線塊。在降低訓(xùn)練成本的幫助下,作者還探索了一些更有效的重參組件。與最先進(jìn)的重參模型相比,OREPA能夠節(jié)省約70%的training-time成本,并加速訓(xùn)練速度約2×。同時(shí),配備OREPA,模型在ImageNet上的方法高出+0.6%。作者還進(jìn)行了目標(biāo)檢測(cè)和語(yǔ)義分割的實(shí)驗(yàn),并顯示了對(duì)下游任務(wù)的一致改進(jìn)。
卷積神經(jīng)網(wǎng)絡(luò)(CNNs)已經(jīng)在許多計(jì)算機(jī)視覺(jué)任務(wù)的應(yīng)用成功,包括圖像分類、目標(biāo)檢測(cè)、語(yǔ)義分割等。精度和模型效率之間的權(quán)衡也已被廣泛討論。
一般來(lái)說(shuō),一個(gè)精度較高的模型通常需要一個(gè)更復(fù)雜的塊,一個(gè)更寬或更深的結(jié)構(gòu)。然而,這樣的模型總是太重,無(wú)法部署,特別是在硬件性能有限、需要實(shí)時(shí)推理的場(chǎng)景下??紤]到效率,更小、更緊湊和更快的模型自然是首選。
為了獲得一個(gè)部署友好且高精度的模型,有研究者提出了基于結(jié)構(gòu)重參數(shù)化的方法來(lái)釋放性能。在這些方法中,模型在訓(xùn)練階段和推理階段有不同的結(jié)構(gòu)。具體來(lái)說(shuō),使用復(fù)雜的訓(xùn)練階段拓?fù)洌粗貐?shù)化的塊,來(lái)提高性能。訓(xùn)練結(jié)束后,通過(guò)等效變換將一個(gè)復(fù)雜的塊重參為成一個(gè)單一的線性層。重參后的模型通常具有一個(gè)整潔架構(gòu)模型,例如,通常是一個(gè)類似VGG的或一個(gè)類似ResNet的結(jié)構(gòu)。從這個(gè)角度來(lái)看,重參化策略可以在不引入額外的推理時(shí)間成本的情況下提高模型的性能。
BN層是重構(gòu)模型的關(guān)鍵組成部分。在一個(gè)重新解析塊(圖1(b))中,在每個(gè)卷積層之后立即添加一個(gè)BN層??梢杂^察到,去除這些BN層會(huì)導(dǎo)致的性能退化。然而,當(dāng)考慮到效率時(shí),這種BN層的使用出乎意料地在訓(xùn)練階段帶來(lái)了巨大的計(jì)算開(kāi)銷。在推理階段,復(fù)雜的塊可以被壓縮成一個(gè)卷積層。但是,在訓(xùn)練過(guò)程中,BN層是非線性的,也就是說(shuō),它們將特征映射除以它的標(biāo)準(zhǔn)差,這就阻止了合并整個(gè)塊。因此,存在大量的中間計(jì)算操作(large FLOPS)和緩沖特征映射(high memory usage)。更糟糕的是,這么高的訓(xùn)練預(yù)算使得很難探索更復(fù)雜和可能更強(qiáng)的重參塊。很自然地,下面的問(wèn)題就出現(xiàn)了:
為什么標(biāo)準(zhǔn)化在重參中這么重要?
通過(guò)分析和實(shí)驗(yàn),作者認(rèn)為BN層中的尺度因子最重要,因?yàn)樗鼈兡軌蚴共煌种У膬?yōu)化方向多樣化。
基于觀察結(jié)果,作者提出了在線重參化(OREPA)(圖1(c)),這是一個(gè)兩階段的pipeline,使之能夠簡(jiǎn)化復(fù)雜的training-time re-param block。
在第一階段,block linearization,去除所有的非線性BN層,并引入線性縮放層。這些層與BN層具有相似的性質(zhì),因此它們使不同分支的優(yōu)化多樣化。此外,這些層都是線性的,可以在訓(xùn)練過(guò)程中合并成卷積層。
第二階段,block squeezing,將復(fù)雜的線性塊簡(jiǎn)化為單一的卷積層。OREPA通過(guò)減少由中間計(jì)算層引起的計(jì)算和存儲(chǔ)開(kāi)銷,顯著降低了訓(xùn)練成本,對(duì)性能只有非常小的影響。
此外,高效化使得探索更復(fù)雜的重參化拓?fù)涑蔀榭赡堋榱蓑?yàn)證這一點(diǎn),作者進(jìn)一步提出了幾個(gè)重參化的組件,以獲得更好的性能。
在ImageNet分類任務(wù)上評(píng)估了所提出的OREPA。與最先進(jìn)的修復(fù)模型相比,OREPA將額外的訓(xùn)練時(shí)間GPU內(nèi)存成本降低了65%到75%,并將訓(xùn)練過(guò)程加快了1.5-2.3倍。同時(shí),OREPA-ResNet和OREPA-VGG的性能始終優(yōu)于+0.2%~+0.6%之前的DBB和RepVGG方法。同時(shí)作者還評(píng)估了在下游任務(wù)上的OREPA,即目標(biāo)檢測(cè)和語(yǔ)義分割。作者發(fā)現(xiàn)OREPA可以在這些任務(wù)上也可以帶來(lái)性能的提高。
本文主要貢獻(xiàn):- 提出了在線卷積重參化(OREPA)策略,這極大地提高了重參化模型的訓(xùn)練效率,并使探索更強(qiáng)的重參化塊成為可能;
- 通過(guò)對(duì)重參化模型工作機(jī)制的分析,用引入的線性尺度層代替BN層,這仍然提供了不同的優(yōu)化方向,并保持了表示能力;
- 在各種視覺(jué)任務(wù)上的實(shí)驗(yàn)表明,OREPA在準(zhǔn)確性和訓(xùn)練效率方面都優(yōu)于以前的重參化模型(DBB/RepVGG)。
結(jié)構(gòu)重參化最近被重視并應(yīng)用于許多計(jì)算機(jī)視覺(jué)任務(wù),如緊湊模型設(shè)計(jì)、架構(gòu)搜索和剪枝。重參化意味著不同的架構(gòu)可以通過(guò)參數(shù)的等價(jià)轉(zhuǎn)換來(lái)相互轉(zhuǎn)換。例如,1×1卷積的一個(gè)分支和3×3卷積的一個(gè)分支,可以轉(zhuǎn)移到3×3卷積的單個(gè)分支中。在訓(xùn)練階段,設(shè)計(jì)了多分支和多層拓?fù)鋪?lái)取代普通的線性層(如conv或全連接層)來(lái)增強(qiáng)模型。Cao等討論了如何在訓(xùn)練過(guò)程中合并深度可分離卷積核。然后在推理過(guò)程中,將訓(xùn)練時(shí)間的復(fù)雜模型轉(zhuǎn)移到簡(jiǎn)單模型中,以便于更快的推理。
在受益于復(fù)雜的training-time拓?fù)?,同時(shí),當(dāng)前的重參化方法訓(xùn)練使用不可忽略的額外計(jì)算成本。當(dāng)塊變得更復(fù)雜以變得更強(qiáng)的表示時(shí),GPU內(nèi)存利用率和訓(xùn)練時(shí)間將會(huì)越來(lái)越長(zhǎng),最終走向不可接受。與以往的重參化方法不同,本文更多地關(guān)注訓(xùn)練成本。提出了一種通用的在線卷積重參化策略,使training-time的結(jié)構(gòu)重參化成為可能。
2.2 NormalizationBN被提出來(lái)緩解訓(xùn)練非常深度神經(jīng)網(wǎng)絡(luò)時(shí)的梯度消失問(wèn)題。人們認(rèn)為BN層是非常重要的,因?yàn)樗鼈兤交藫p失。最近關(guān)于無(wú)BN神經(jīng)網(wǎng)絡(luò)的研究聲稱,BN層并不是不可或缺的。通過(guò)良好的初始化和適當(dāng)?shù)恼齽t化,可以優(yōu)雅地去除BN層。
對(duì)于重參化模型,作者認(rèn)為重參化塊中的BN層是關(guān)鍵的。無(wú)BN的變體將會(huì)出現(xiàn)性能下降。然而,BN層是非線性的,也就是說(shuō),它們將特征圖除以它的標(biāo)準(zhǔn)差,這阻止了在線合并塊。為了使在線重參化可行,作者去掉了重參塊中的所有BN層,并引入了BN層的線性替代方法,即線性縮放層。
2.3 卷積分解標(biāo)準(zhǔn)卷積層計(jì)算比較密集,導(dǎo)致大的FLOPs和參數(shù)量。因此,卷積分解方法被提出,并廣泛應(yīng)用于移動(dòng)設(shè)備的輕量化模型中。重參化方法也可以看作是卷積分解的某種形式,但它更傾向于更復(fù)雜的拓?fù)浣Y(jié)構(gòu)。本文的方法的不同之處在于,在kernel-level上分解卷積,而不是在structure level。
3在線重參化在本節(jié)中,首先,分析了關(guān)鍵組件,即重參化模型中的BN層,在此基礎(chǔ)上提出了在線重參化(OREPA),旨在大大減少再參數(shù)化模型的訓(xùn)練時(shí)間預(yù)算。OREPA能夠?qū)?fù)雜的訓(xùn)練時(shí)間塊簡(jiǎn)化為一個(gè)卷積層,并保持了較高的精度。
OREPA的整體pipeline如圖2所示,它包括一個(gè)Block Linearization階段和一個(gè)Block Squeezing階段。
圖2作者通過(guò)分析多層和多分支結(jié)構(gòu)的優(yōu)化多樣性,深入研究了重參化的有效性,并證明了所提出的線性縮放層和BN層具有相似的效果。
最后,隨著訓(xùn)練預(yù)算的減少,進(jìn)一步探索了更多的組件,以實(shí)現(xiàn)更強(qiáng)的重參化模型,成本略有增加。
3.1 重參化中的Normalization作者認(rèn)為中間BN層是重參化過(guò)程中多層和多分支結(jié)構(gòu)的關(guān)鍵組成部分。以SoTA模型DBB和RepVGG為例,去除這些層會(huì)導(dǎo)致嚴(yán)重的性能下降,如表1所示。
這種觀察結(jié)果也得到了Ding等人的實(shí)驗(yàn)支持。因此,作者認(rèn)為中間的BN層對(duì)于重參化模型的性能是必不可少的。
然而,中間BN層的使用帶來(lái)了更高的訓(xùn)練預(yù)算。作者注意到,在推理階段,重參化塊中的所有中間操作都是線性的,因此可以合并成一個(gè)卷積層,從而形成一個(gè)簡(jiǎn)單的結(jié)構(gòu)。
但在訓(xùn)練過(guò)程中,BN層是非線性的,即它們將特征映射除以其標(biāo)準(zhǔn)差。因此,中間操作應(yīng)該單獨(dú)計(jì)算,這將導(dǎo)致更高的計(jì)算和內(nèi)存成本。更糟糕的是,如此高的成本將阻止探索更強(qiáng)大的訓(xùn)練模塊。
3.2 Block Linearization如3.1中所述,中間的BN層阻止了在訓(xùn)練過(guò)程中合并單獨(dú)的層。然而,由于性能問(wèn)題,直接刪除它們并不簡(jiǎn)單。為了解決這一困境,作者引入了channel級(jí)線性尺度操作作為BN的線性替代方法。
縮放層包含一個(gè)可學(xué)習(xí)的向量,它在通道維度中縮放特征映射。線性縮放層具有與BN層相似的效果,它們都促進(jìn)多分支向不同的方向進(jìn)行優(yōu)化,這是重參化時(shí)性能提高的關(guān)鍵。除了對(duì)性能的影響外,線性縮放層還可以在訓(xùn)練過(guò)程中進(jìn)行合并,使在線重參化成為可能。
基于線性縮放層,作者修改了重參化塊,如圖3所示。具體來(lái)說(shuō),塊的線性化階段由以下3個(gè)步驟組成:
首先,刪除了所有的非線性層,即重參化塊中的BN層
其次,為了保持優(yōu)化的多樣性,在每個(gè)分支的末尾添加了一個(gè)縮放層,這是BN的線性替代方法
最后,為了穩(wěn)定訓(xùn)練過(guò)程,在所有分支的添加后添加一個(gè)BN層。
一旦完成線性化階段,在重參化塊中只存在線性層,這意味著可以在訓(xùn)練階段合并塊中的所有組件。
3.3 Block SqueezingBlock Squeezing步驟將計(jì)算和內(nèi)存昂貴的中間特征映射上的操作轉(zhuǎn)換為更經(jīng)濟(jì)的kernel上的操作。這意味著在計(jì)算和內(nèi)存方面從減少到,其中、是特征圖和卷積核的空間尺寸。
一般來(lái)說(shuō),無(wú)論線性重參化塊是多么復(fù)雜,以下2個(gè)屬性始終成立:
- Block中的所有線性層,例如深度卷積、平均池化和所提出的線性縮放,都可以用帶有相應(yīng)參數(shù)的退化卷積層來(lái)表示;
- Block可以由一系列并行分支表示,每個(gè)分支由一系列卷積層組成。
有了上述兩個(gè)特性,如果可以將
- 多層(即順序結(jié)構(gòu))
- 多分支(即并行結(jié)構(gòu))
簡(jiǎn)化為單一卷積,就可以壓縮一個(gè)塊。在下面的部分中,將展示如何簡(jiǎn)化順序結(jié)構(gòu)(圖4(a))和并行結(jié)構(gòu)(圖4(b))。
首先定義卷積的符號(hào)。設(shè)表示一個(gè)大小的二維卷積核的輸入和輸出通道數(shù)。,表示輸入和輸出張量。在這里省略了偏差作為一種常見(jiàn)的做法,卷積過(guò)程被表示為:
1、簡(jiǎn)化順序結(jié)構(gòu)考慮一堆卷積層,其表示為:
其中滿足,。根據(jù)結(jié)合律,通過(guò)首先卷積核,可以將這些層壓縮成一個(gè)層:
其中,為第層的權(quán)重。表示端到端映射矩陣。
2、簡(jiǎn)化并行結(jié)構(gòu)并行結(jié)構(gòu)根據(jù)卷積的線性性,可以根據(jù)等式將多個(gè)分支合并成一個(gè)分支:
其中,為第個(gè)分支的權(quán)重,和(為統(tǒng)一的權(quán)重。值得注意的是,當(dāng)合并不同大小的kernel時(shí),需要對(duì)齊不同kernel的空間中心,例如,1×1 kernel應(yīng)該與3×3 kernel的中心對(duì)齊(如RepVGG)。
3、訓(xùn)練開(kāi)銷:從特征到kernels。無(wú)論這個(gè)Block有多復(fù)雜,它都必須僅僅由多分支和多層的子拓?fù)浣M成。因此,可以根據(jù)上述兩個(gè)簡(jiǎn)化規(guī)則將其簡(jiǎn)化為一個(gè)單一的簡(jiǎn)化規(guī)則。最后,可以得到一體化的端到端映射權(quán)重,并且在訓(xùn)練期間只卷積一次。實(shí)際上將中間特征映射上的操作(卷積,加法)轉(zhuǎn)換為卷積kernel上的操作。因此,在計(jì)算和內(nèi)存方面將計(jì)算復(fù)雜度從減少到了。
3.4 多分支拓?fù)浣Y(jié)構(gòu)的梯度分析為了理解為什么Block Linearization步驟是可行的?,即為什么縮放層是重要的?,作者對(duì)統(tǒng)一權(quán)重重參化的優(yōu)化進(jìn)行了分析。
結(jié)論是,對(duì)于去掉BN層的分支,利用縮放層可以使其優(yōu)化方向多樣化,并防止其退化為單一的優(yōu)化方向。
為了簡(jiǎn)化表示法,只取輸出Y的單維??紤]一個(gè)縮放序列:
其中是滑動(dòng)窗口內(nèi)的向量化像素,,W是對(duì)應(yīng)于特定輸出通道的卷積核,是比例因子。假設(shè)所有參數(shù)都通過(guò)隨機(jī)梯度下降更新,映射更新為:
其中,L為整個(gè)模型的損失函數(shù),η為學(xué)習(xí)率。是多分支拓?fù)涔蚕淼?,?
端到端權(quán)重與等式(6)的權(quán)重同等優(yōu)化(順序結(jié)構(gòu)可以得到):
使用相同的前傳t-moment端到端矩陣。因此,沒(méi)有引入優(yōu)化變化。這一結(jié)論也得到了實(shí)驗(yàn)支持。相反,具有分支級(jí)的多分支拓?fù)涮峁┝诉@樣的變化:
端到端權(quán)重的更新與等式(6)不同:
滿足相同的前提條件和條件1:
條件1:所有分支中至少有2個(gè)是活動(dòng)的
條件2:每個(gè)活動(dòng)分支的初始狀態(tài)都是不同的
同時(shí),當(dāng)滿足條件2時(shí),多分支結(jié)構(gòu)不會(huì)退化為單一結(jié)構(gòu),多個(gè)分支同時(shí)進(jìn)行前向和反向傳播。這也揭示了為什么比例因子是重要的。
注意,當(dāng)每個(gè)分支的權(quán)值是隨機(jī)初始化的,而縮放因子被初始化為1時(shí),條件1和條件2都始終滿足。
命題1:一個(gè)單分支線性映射,當(dāng)通過(guò)超兩層多分支拓?fù)渲貐⒒糠只蛉繒r(shí),整個(gè)端到端權(quán)重矩陣將得到不同的優(yōu)化。如果映射的一層被重參化到多達(dá)一層的多分支拓?fù)洌瑒t優(yōu)化將保持不變。
到目前為止,已經(jīng)擴(kuò)展了關(guān)于重參化如何影響優(yōu)化的討論。實(shí)際上,所有當(dāng)前有效的重參化拓?fù)涠伎梢酝ㄟ^(guò)命題1進(jìn)行驗(yàn)證。
詳細(xì)分析見(jiàn)論文附錄部分3.5 Block涉設(shè)計(jì)由于所提出的OREPA節(jié)省了很大幅度的訓(xùn)練成本,它促使能夠探索更復(fù)雜的訓(xùn)練塊。為此,設(shè)計(jì)了一種新的重新參數(shù)化模型,即OREPA-ResNet,通過(guò)線性化最新的模型DBB,并插入以下組件(圖5)。
1、頻率先驗(yàn)濾波器在DBB中,在塊中使用了池化層。Qin等人認(rèn)為,池化層是頻率濾波器的一種特殊情況。為此,作者添加了一個(gè)Conv1×1-頻率濾波器分支。
2、線性深度可分離卷積通過(guò)去除中間的非線性激活層,對(duì)深度可分離的卷積進(jìn)行了輕微的修改,使其在訓(xùn)練過(guò)程中可以進(jìn)行合并。
3、重參化1×1卷積以往的工作主要集中在3×3卷積層的重參上,而忽略了1×1卷積層的重參。作者建議重參化1×1層,因?yàn)樗鼈冊(cè)赽ottleneck結(jié)構(gòu)中發(fā)揮著重要作用。具體來(lái)說(shuō),在Block添加了一個(gè)額外的Conv1×1-Conv1×1分支。
4、線性Stem大的卷積核通常被放置在最開(kāi)始的層,例如,7×7的Stem,目的是實(shí)現(xiàn)一個(gè)更大的感受野。Guo等人將堆疊的3×3卷積層替換7×7卷積,以獲得更高的精度。然而,由于高分辨率,在最初始層堆疊需要更大的計(jì)算開(kāi)銷。需要注意的是,這里可以用提出的線性縮放層將stacked deep stem縮放到7×7conv層,這可以大大降低訓(xùn)練成本,同時(shí)保持高精度。
對(duì)于OREPA-ResNet中的每個(gè)塊(圖6):
4實(shí)驗(yàn)4.1 消融實(shí)驗(yàn)1、線性縮放層和優(yōu)化多樣性圖7
- 添加了一個(gè)頻率先驗(yàn)濾波器和一個(gè)線性的深度可分離卷積
- 將所有的Stem(即最初的7×7卷積)替換為所提出的線性deep stem層
- 在bottleneck中,除了1和2之外,進(jìn)一步將所提出的rep 1×1塊替換原來(lái)的1×1卷積分支
首先進(jìn)行實(shí)驗(yàn)來(lái)驗(yàn)證核心思想,即所提出的線性縮放層與BN層起著相似的作用。根據(jù)3.4中的分析。文章展示了縮放層和BN層都能夠多樣化優(yōu)化方向。為了驗(yàn)證這一點(diǎn),作者可視化了圖7中所有分支的分支級(jí)相似性。作者發(fā)現(xiàn),縮放層的使用可以顯著增加不同分支的多樣性。
在表2中驗(yàn)證了這種多樣性的有效性。以ResNet-18結(jié)構(gòu)為例,這兩種層(BN和線性縮放)帶來(lái)了相似的性能增益(即0.42vs.0.40)。這有力地支持了本文的觀點(diǎn),即在重參化中,最重要的是縮放部分,而不是統(tǒng)計(jì)標(biāo)準(zhǔn)化部分。
2、各種線性化策略本文作者嘗試了各種尺度層的線性化策略。具體來(lái)說(shuō)4種變體:
- Vector:利用一個(gè)通道級(jí)向量,并沿著通道軸執(zhí)行縮放操作。
- Scalar:用一個(gè)標(biāo)量來(lái)縮放整個(gè)特征圖。
- W/o scaling:刪除分支級(jí)縮放層。
- W/o post-addition BN:刪除后BN層。
從表3中發(fā)現(xiàn),無(wú)論是部署標(biāo)量縮放層還是不部署縮放層,都會(huì)導(dǎo)致較差的結(jié)果。因此,選擇向量縮放作為默認(rèn)策略。
作者還研究了加法后BN層的有效性。如3.2中所述。添加了后BN層來(lái)穩(wěn)定訓(xùn)練過(guò)程。為了證明這一點(diǎn),作者刪除了這些層,如表3中的最后一行所示,梯度變成無(wú)窮大,模型無(wú)法收斂。
3、每個(gè)組件都很重要對(duì)ResNet-18和ResNet-50的結(jié)構(gòu)都進(jìn)行了實(shí)驗(yàn)。如表2所示,每個(gè)組件都有助于提高性能。
4、Online vs. offline作者比較了OREPA-ResNet-18與DBB-18的訓(xùn)練成本進(jìn)行了對(duì)比。舉例說(shuō)明了消耗的內(nèi)存(圖8(a))和訓(xùn)練時(shí)間(圖8(b))。
隨著組件數(shù)量的增加,離線重參化模型面臨著內(nèi)存利用率快速增加和訓(xùn)練時(shí)間長(zhǎng)的問(wèn)題。由于高內(nèi)存成本,甚至不能在ResNet-18模型中引入Deep Stem。相比之下,在線重參化策略將訓(xùn)練速度提高了4×,并節(jié)省了高達(dá)96+%的額外GPU內(nèi)存??傮w的訓(xùn)練開(kāi)銷大致與基本模型(普通ResNet)的水平相同。
4.2 與其他重參化對(duì)比從表4中觀察到在ResNet系列上,OREPA可以在各種模型上的性能持續(xù)提高+0.36%。同時(shí),它將訓(xùn)練速度加速了1.5×至2.3×,并節(jié)省了約70+%的額外訓(xùn)練時(shí)間內(nèi)存。
作者還對(duì)VGG結(jié)構(gòu)進(jìn)行了實(shí)驗(yàn),比較了OREPA-VGG和RepVGG。對(duì)于OREPA-VGG模型,簡(jiǎn)單地用在OREPA-中使用的OREPA-res-3×3分支。這種修改只引入了邊際的額外訓(xùn)練成本,同時(shí)也帶來(lái)了明顯的性能增益(+0.25%~+0.6%)。
4.3 目標(biāo)檢測(cè)與語(yǔ)義分割4.4 局限性當(dāng)簡(jiǎn)單地將所提出的OREPA從ResNet轉(zhuǎn)移到RepVGG時(shí),作者發(fā)現(xiàn)基于殘差和無(wú)殘差(VGG-like)結(jié)構(gòu)之間的性能不一致。因此,在RepVGG塊中保留了所有的三個(gè)分支,以保持具有競(jìng)爭(zhēng)性的精度,這就略微增加了計(jì)算成本。這是一個(gè)有趣的現(xiàn)象。
5參考[1].OREPA: Online Convolutional Re-parameterization
本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。