1. 程式人生 > 實用技巧 >ResNeSt中的ResNest Block(split-attention blocks)

ResNeSt中的ResNest Block(split-attention blocks)

從圖中很明顯可以看出 ResNeSt是 SENet-block、SKNet-block和 ResNeXt 的整合。首先和 ResNeXt一樣,先將輸入劃分為K份,每一個都記作 Cardinal X。然後將每個 Cardinal繼續拆分為 Split Y,所以總共就有 G=XY 個分支(可以想象成一棵樹)。Split Y是由若干卷積組成,用於特徵的提取,同一個 Cardinal裡的 Split通過同一個 Split Attention 模組進行輸出。

Split Attention模組如下圖所示,其實就相當於 SENet-block ,一個通道注意力機制,對通道賦予不同的權重。

最後再加一個 SKNet-block 。將每個 Cardinal 模組輸出的特徵進行拼接之後,加一個 1x1卷積進行處理,將 1x1卷積的輸出結果與輸入特徵進行相加,就是完整的 ResNeStblock的操作了。而將ResNeStblock進行堆疊,就形成了 ResNeSt。