Pytorch實作系列 — ResNeXt

mz bai
Apr 27, 2024

--

ResNeXt 是由Xie et al.(2017, 加州大學、臉書 FAIR)在 Aggregated Residual Transformations for Deep Neural Networks 提出,特色在於將ResNet的bottleneck區塊改以Inception的結構表達,達到計算量下降且網路寬度上升的效果。

想了解ResNet的可先參考

網路概念

ResNeXt的特色在於將ResNet的bottleneck區塊改以類似Inception的結構,切分多路,以小通道數達成原先較大通道數的成效,並新增一個超參數C(cardinality)表達路徑數,根據原先ResNet的參數量推論對應的小通道數,得到32個路徑。

如此設計的好處,是在較少的計算量下,保留一樣多的參數的同時,能有更寬的網路,參數代表可容納的記憶大小,而更寬的網路代表更好的表達能力。

與Inception結構不同的是,該網路使用相同的卷積核大小,也因此可以更有效率的實現及減少超參數的搜尋。

network concept

網路結構

結構上可如同論文中的下圖,從(a)將計算切成多路再相加,到(b)的共用1x1卷積層,最後等價到(c)的group convolution實現最為實際。也因此可將ResNext視為ResNet + group convolution的整合,後來的MobileNet v2也有著類似的結構。

network implementation in paper

資料集

EuroSAT,一個有兩萬七千多張照片的衛星對地面照片資料集,共十種標記,包括森林、工業區、住宅區、河流、耕地等。

評估

  1. 輸出類別1000時,50層的參數量比ResNet減少50萬,18層則相差100萬左右
confusion matrix(training accuracy)

實作

參考

--

--

mz bai

Present data engineer, former data analyst, Kaggle player, loves data modeling.