Pytorch實作系列 — DenseNet

mz bai
May 8, 2024

--

Huang et al. 在 (2016, 康乃爾、 清華、 臉書 FAIR)提出 Densely Connected Convolutional Networks,特點在於將所有處理過的特徵圖都當作下一層的輸入,達到不同層級訊息傳遞共享的效果,因此可達到更深的深度。

網路概念

比起ResNet用一條skip connection將區塊的輸入與輸出連結,DenseNet選擇將所有處理過的特徵圖都當作下一層的輸入。概念類似多個小網路,將不同層級的訊息都相連起來,因此淺層也可獲得深層的訊息,網路深度可用更少的代價達到更深的深度。

因此也達到特徵圖複用的效果,因此參數設計上較有效率。

darknet作者更是稱讚,並稱ResNet相比下極為笨重。

網路結構

模型結構由四個dense block組合,中間穿插transition layer,稍微不同的是為了讓convolution後的feature map可以傳遞,所以卷積模塊的順序是從batch normalization開始。

densenet architecture from paper[1608.06993]
hyperparameter from paper[1608.06993]

資料集

Animals-10,一個包含十種動物,兩萬八千多張照片的資料集。

評估

速度上比ResNet快,參數少,即使到169層仍只需要用上ResNet50一半的參數,需要較長時間達到收斂,訓練準確度達71.6%。

densenet169 confusion matrix(training)

實作

參考

--

--

mz bai
mz bai

Written by mz bai

Math is math, math is universal Code is code, code is horrifying unique.

No responses yet