跳到主要內容

發表文章

目前顯示的是有「paper」標籤的文章

RepVGG 論文解讀,新的模型架構設計,CVPR 2021

簡介 RepVGG: Making VGG-style ConvNets Great Again  將會收錄在 CVPR 2021,在現在深度學習模型越來越複雜的,或是各種NAS(neural architecture serach) 動輒幾千GPU小時找出的模型架構的時代中令人眼睛一亮的論文,在視覺相關任務的模型設計上可以提供很大的啟發。 建議讀者先有下列的知識,在閱讀此文章或論文時會好理解許多:     1. 深度學習常見模型的架構: VGG 、 ResNet , Densenet, Inception 等,理解 CNN 模型演變史  2. 熟悉將 BN (batch norm) 的參數合併進 convolution 的方法。因 BN 和 convolution 實際上都是矩陣乘法和加法的運算,因此模型在推論 (inference) 時可以將 BN 合併進 convolution 來減少模型的參數和計算量,詳細的計算可以參考 這邊 。 背景 近年來深度學習模型的發展,多分支(multi-branch) 模型逐漸成為主流,例如 ResNet 的殘差連結(residual connect) 讓訓練較深的模型變容易,Inception 則藉由多分支來獲得不同感受野(receptive fileld)的特徵。多分支模型往往可以達到較高的效益,但也有一個很明顯地缺點: 記憶體使用量,多分支的模型比須保存中間結果直到分支合併,導致推論時速度變慢或是需要更多的記憶體,不利於工業界做模型的部署與加速。 為了解決這個問題,作者設計了 RepVGG,  在多分支的狀況下訓練模型,並用結構重新參數化的方法將分支合併,讓模型在推論時只有單一分支,藉此達到高準確率又能維持記憶體使用量。   多分支的記憶體使用量較多示意圖 模型設計 論文首先解釋為何模型骨架要使用 VGG,主要因為下列三個原因: 1. 速度快: RepVGG 只使用 3*3 convolution , NVIDIA cuDNN 或是 Intel MKL 都有對 3*3 convolution 做加速,而且未來如果某個硬體想對 RepVGG 的部署做優化,就只需要針對 3*3 convolution 的計算特別優化,不必考慮其他操作。 2. 節省記憶體: ...