日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

注意力机制-CA注意力-Coordinate attention

發布時間:2023/12/16 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 注意力机制-CA注意力-Coordinate attention 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注意力機制學習--CA(Coordinate attention)

    • 簡介
        • CA注意力機制的優勢:
        • 提出不足
    • 算法流程圖
    • 代碼
    • 最后

簡介

CA(Coordinate attention for efficient mobile network design)發表在CVPR2021,幫助輕量級網絡漲點、即插即用。

CA注意力機制的優勢:

1、不僅考慮了通道信息,還考慮了方向相關的位置信息。
2、足夠的靈活和輕量,能夠簡單的插入到輕量級網絡的核心模塊中。

提出不足

1、SE注意力中只關注構建通道之間的相互依賴關系,忽略了空間特征。
2、CBAM中引入了大尺度的卷積核提取空間特征,但忽略了長程依賴問題。

算法流程圖


step1: 為了避免空間信息全部壓縮到通道中,這里沒有使用全局平均池化。為了能夠捕獲具有精準位置信息的遠程空間交互,對全局平均池化進行的分解,具體如下:


對尺寸為C?H?WC*H*WC?H?W輸入特征圖InputInputInput分別按照XXX方向和YYY方向進行池化,分別生成尺寸為C?H?1C*H*1C?H?1C?1?WC*1*WC?1?W的特征圖。如下圖所示(圖片粘貼自B站大佬渣渣的熊貓潘)。

step2:將生成的C?1?WC*1*WC?1?W的特征圖進行變換,然后進行concat操作。公式如下:

zhz^hzhzwz^wzw進行concat后生成如下圖所示的特征圖,然后進行F1操作(利用1*1卷積核進行降維,如SE注意力中操作)和激活操作,生成特征圖f∈RC/r×(H+W)×1f \in \mathbb{R}^{C/r\times(H+W)\times1}fRC/r×(H+W)×1

step3:沿著空間維度,再將fff進行split操作,分成fh∈RC/r×H×1f^h\in \mathbb{R}^{C/r\times H \times1}fhRC/r×H×1fw∈RC/r×1×Wf^w\in \mathbb{R}^{C/r\times1\times W}fwRC/r×1×W,然后分別利用1×11 \times 11×1卷積進行升維度操作,再結合sigmoid激活函數得到最后的注意力向量gh∈RC×H×1g^h \in \mathbb{R}^{C \times H \times 1 }ghRC×H×1gw∈RC×1×Wg^w\in \mathbb{R}^{C \times1\times W}gwRC×1×W

最后:Coordinate Attention 的輸出公式可以寫成:

代碼

代碼粘貼自github。CoordAttention
地址:https://github.com/houqb/CoordAttention/blob/main/mbv2_ca.py

class CoordAtt(nn.Module):def __init__(self, inp, oup, groups=32):super(CoordAtt, self).__init__()self.pool_h = nn.AdaptiveAvgPool2d((None, 1))self.pool_w = nn.AdaptiveAvgPool2d((1, None))mip = max(8, inp // groups)self.conv1 = nn.Conv2d(inp, mip, kernel_size=1, stride=1, padding=0)self.bn1 = nn.BatchNorm2d(mip)self.conv2 = nn.Conv2d(mip, oup, kernel_size=1, stride=1, padding=0)self.conv3 = nn.Conv2d(mip, oup, kernel_size=1, stride=1, padding=0)self.relu = h_swish()def forward(self, x):identity = xn,c,h,w = x.size()x_h = self.pool_h(x)x_w = self.pool_w(x).permute(0, 1, 3, 2)y = torch.cat([x_h, x_w], dim=2)y = self.conv1(y)y = self.bn1(y)y = self.relu(y) x_h, x_w = torch.split(y, [h, w], dim=2)x_w = x_w.permute(0, 1, 3, 2)x_h = self.conv2(x_h).sigmoid()x_w = self.conv3(x_w).sigmoid()x_h = x_h.expand(-1, -1, h, w)x_w = x_w.expand(-1, -1, h, w)y = identity * x_w * x_hreturn y

最后

CA不僅考慮到空間和通道之間的關系,還考慮到長程依賴問題。通過實驗發現,CA不僅可以實現精度提升,且參數量、計算量較少。

簡單進行記錄,如有問題請大家指正。

總結

以上是生活随笔為你收集整理的注意力机制-CA注意力-Coordinate attention的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。