理论推导
整体模型框架
试验结果显示串联效果优于并联结果,channel attention在前优于spatial attention在前。
因此,最后采取的是一个channel attention module与一个spatial attention module串联的形式。

表达式如下:
F ′ = M c ( F ) ⨂ F {F}'=M_{c}(F)\bigotimes F F′=Mc(F)⨂F
F ′ ′ = M s ( F ′ ) ⨂ F ′ {F}''=M_{s}({F}')\bigotimes {F}' F′′=Ms(F′)⨂F′
式中,
F ∈ R C × H × W F \in \mathbb{R}^{C\times H\times W } F∈RC×H×W表示module输入特征层
M c ∈ R C × 1 × 1 M_{c} \in \mathbb{R}^{C\times 1\times 1 } Mc∈RC×1×1表示1D channel attention
M s ∈ R 1 × H × W M_{s} \in \mathbb{R}^{1\times H\times W } Ms∈R1×H×W表示2D spatial attention
⨂ \bigotimes ⨂表示同位元素相乘
Channel attention module
1.同时进行了global maxpool和avgpool;
2. 共享权重且具有瓶颈机制两层全连接;
3. 同位相加后采用sigmoid激活,得到输出;

因此对应 M c ( F ) M_{c}(F) Mc(F)的表达式如下:
M c ( F ) = σ ( M L P ( A v g P o o l ( F ) ) + M L P ( M a x P o o l ( F ) ) = σ ( W 1 ( W 0 ( F a v g c ) ) + W 1 ( W 0 ( F m a x c ) ) ) \begin{aligned} M_{c}(F)&=\sigma(MLP(AvgPool(F))+MLP(MaxPool(F))\\&=\sigma(W_{1}(W_{0}(F_{avg}^{c}))+W_{1}(W_{0}(F_{max}^{c}))) \end{aligned} Mc(F)=σ(MLP(AvgPoo

本文介绍了Tensorflow2.0中使用Keras实现CBAM模块的详细过程,包括Channel Attention和Spatial Attention的理论推导及代码实现。CBAM通过结合global maxpool和avgpool提升模型性能,相较于SENet,CBAM的max-pooling提供了更精确的通道注意力。此外,文章还提供了基于ResNet系列的模型搭建参考。
1万+

被折叠的 条评论
为什么被折叠?



