国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【深度學(xué)習(xí)注意力機(jī)制系列】—— CBAM注意力機(jī)制(附pytorch實現(xiàn))

這篇具有很好參考價值的文章主要介紹了【深度學(xué)習(xí)注意力機(jī)制系列】—— CBAM注意力機(jī)制(附pytorch實現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

CBAM(Convolutional Block Attention Module)是一種用于增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)(CNN)性能的注意力機(jī)制模塊。它由Sanghyun Woo等人在2018年的論文[1807.06521] CBAM: Convolutional Block Attention Module (arxiv.org)中提出。CBAM的主要目標(biāo)是通過在CNN中引入通道注意力和空間注意力來提高模型的感知能力,從而在不增加網(wǎng)絡(luò)復(fù)雜性的情況下改善性能。

1、概述

CBAM旨在克服傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)在處理不同尺度、形狀和方向信息時的局限性。為此,CBAM引入了兩種注意力機(jī)制:通道注意力和空間注意力。通道注意力有助于增強(qiáng)不同通道的特征表示,而空間注意力有助于提取空間中不同位置的關(guān)鍵信息。

2、模型結(jié)構(gòu)

CBAM由兩個關(guān)鍵部分組成:通道注意力模塊(C-channel)空間注意力模塊(S-channel)。這兩個模塊可以分別嵌入到CNN中的不同層,以增強(qiáng)特征表示。

2.1 通道注意力模塊

【深度學(xué)習(xí)注意力機(jī)制系列】—— CBAM注意力機(jī)制(附pytorch實現(xiàn)),深度學(xué)習(xí),# PyTorch,深度學(xué)習(xí),pytorch,人工智能,計算機(jī)視覺,機(jī)器學(xué)習(xí),python

通道注意力模塊的目標(biāo)是增強(qiáng)每個通道的特征表達(dá)。以下是實現(xiàn)通道注意力模塊的步驟:

  1. 全局最大池化和全局平均池化: 對于輸入特征圖,首先對每個通道執(zhí)行全局最大池化和全局平均池化操作,計算每個通道上的最大特征值和平均特征值。這會生成兩個包含通道數(shù)的向量,分別表示每個通道的全局最大特征和平均特征。

  2. 全連接層: 將全局最大池化和平均池化后的特征向量輸入到一個共享全連接層中。這個全連接層用于學(xué)習(xí)每個通道的注意力權(quán)重。通過學(xué)習(xí),網(wǎng)絡(luò)可以自適應(yīng)地決定哪些通道對于當(dāng)前任務(wù)更加重要。將全局最大特征向量和平均特征向相交,得到最終注意力權(quán)重向量。

  3. Sigmoid激活: 為了確保注意力權(quán)重位于0到1之間,應(yīng)用Sigmoid激活函數(shù)來產(chǎn)生通道注意力權(quán)重。這些權(quán)重將應(yīng)用于原始特征圖的每個通道。

  4. 注意力加權(quán): 使用得到的注意力權(quán)重,將它們與原始特征圖的每個通道相乘,得到注意力加權(quán)后的通道特征圖。這將強(qiáng)調(diào)對當(dāng)前任務(wù)有幫助的通道,并抑制無關(guān)的通道。

代碼實現(xiàn)

class ChannelAttention(nn.Module):
    """
    CBAM混合注意力機(jī)制的通道注意力
    """

    def __init__(self, in_channels, ratio=16):
        super(ChannelAttention, self).__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.max_pool = nn.AdaptiveMaxPool2d(1)

        self.fc = nn.Sequential(
            # 全連接層
            # nn.Linear(in_planes, in_planes // ratio, bias=False),
            # nn.ReLU(),
            # nn.Linear(in_planes // ratio, in_planes, bias=False)

            # 利用1x1卷積代替全連接,避免輸入必須尺度固定的問題,并減小計算量
            nn.Conv2d(in_channels, in_channels // ratio, 1, bias=False),
            nn.ReLU(inplace=True),
            nn.Conv2d(in_channels // ratio, in_channels, 1, bias=False)
        )

        self.sigmoid = nn.Sigmoid()

        def forward(self, x):
            avg_out = self.fc(self.avg_pool(x))
            max_out = self.fc(self.max_pool(x))
            out = avg_out + max_out
            out = self.sigmoid(out)
            return out * x

?

2.2 空間注意力模塊

【深度學(xué)習(xí)注意力機(jī)制系列】—— CBAM注意力機(jī)制(附pytorch實現(xiàn)),深度學(xué)習(xí),# PyTorch,深度學(xué)習(xí),pytorch,人工智能,計算機(jī)視覺,機(jī)器學(xué)習(xí),python

空間注意力模塊的目標(biāo)是強(qiáng)調(diào)圖像中不同位置的重要性。以下是實現(xiàn)空間注意力模塊的步驟:

  1. 最大池化和平均池化: 對于輸入特征圖,分別沿通道維度執(zhí)行最大池化和平均池化操作,生成不同上下文尺度的特征。
  2. 連接和卷積: 將最大池化和平均池化后的特征沿著通道維度進(jìn)行連接(拼接),得到一個具有不同尺度上下文信息的特征圖。然后,通過卷積層處理這個特征圖,以生成空間注意力權(quán)重。
  3. Sigmoid激活: 類似于通道注意力模塊,對生成的空間注意力權(quán)重應(yīng)用Sigmoid激活函數(shù),將權(quán)重限制在0到1之間。
  4. 注意力加權(quán): 將得到的空間注意力權(quán)重應(yīng)用于原始特征圖,對每個空間位置的特征進(jìn)行加權(quán)。這樣可以突出重要的圖像區(qū)域,并減少不重要的區(qū)域的影響。

代碼實現(xiàn)

class SpatialAttention(nn.Module):
    """
    CBAM混合注意力機(jī)制的空間注意力
    """

    def __init__(self, kernel_size=7):
        super(SpatialAttention, self).__init__()

        assert kernel_size in (3, 7), 'kernel size must be 3 or 7'
        padding = 3 if kernel_size == 7 else 1
        self.conv1 = nn.Conv2d(2, 1, kernel_size, padding=padding, bias=False)
        self.sigmoid = nn.Sigmoid()

    def forward(self, x):
        avg_out = torch.mean(x, dim=1, keepdim=True)
        max_out, _ = torch.max(x, dim=1, keepdim=True)
        out = torch.cat([avg_out, max_out], dim=1)
        out = self.sigmoid(self.conv1(out))
        return out * x

2.3 混合注意力模塊

【深度學(xué)習(xí)注意力機(jī)制系列】—— CBAM注意力機(jī)制(附pytorch實現(xiàn)),深度學(xué)習(xí),# PyTorch,深度學(xué)習(xí),pytorch,人工智能,計算機(jī)視覺,機(jī)器學(xué)習(xí),python

CBAM就是將通道注意力模塊和空間注意力模塊的輸出特征逐元素相乘,得到最終的注意力增強(qiáng)特征。這個增強(qiáng)的特征將用作后續(xù)網(wǎng)絡(luò)層的輸入,以在保留關(guān)鍵信息的同時,抑制噪聲和無關(guān)信息。原文實驗證明先進(jìn)行通道維度的整合,再進(jìn)行空間維度的整合,模型效果更好(有效玄學(xué)煉丹的感覺)。

代碼實現(xiàn)

class CBAM(nn.Module):
    """
    CBAM混合注意力機(jī)制
    """

    def __init__(self, in_channels, ratio=16, kernel_size=3):
        super(CBAM, self).__init__()
        self.channelattention = ChannelAttention(in_channels, ratio=ratio)
        self.spatialattention = SpatialAttention(kernel_size=kernel_size)

    def forward(self, x):
        x = self.channelattention(x)
        x = self.spatialattention(x)
        return x

總結(jié)

總之,CBAM模塊通過自適應(yīng)地學(xué)習(xí)通道和空間注意力權(quán)重,以提高卷積神經(jīng)網(wǎng)絡(luò)的特征表達(dá)能力。通過將通道注意力和空間注意力結(jié)合起來,CBAM模塊能夠在不同維度上捕獲特征之間的相關(guān)性,從而提升圖像識別任務(wù)的性能。文章來源地址http://www.zghlxwxcb.cn/news/detail-639063.html

到了這里,關(guān)于【深度學(xué)習(xí)注意力機(jī)制系列】—— CBAM注意力機(jī)制(附pytorch實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Pytorch圖像處理注意力機(jī)制SENet CBAM ECA模塊解讀

    Pytorch圖像處理注意力機(jī)制SENet CBAM ECA模塊解讀

    目錄 1. 注意力機(jī)制 1.1 SENet(Squeeze-and-Excitation Network) 1.1.1 SENet原理 ?1.1.2? SENet代碼示例 1.2?CBAM(Convolutional Block Attention Module) 1.2.1 CBAM原理 ?1.2.2 CBAM代碼示例 1.3?ECA(Efficient Channel Attention) 1.3.1 ECA原理 ?1.3.2 ECA代碼示例 ? 注意力機(jī)制 最初是為了解決自然語言處理(NLP)任

    2024年02月15日
    瀏覽(21)
  • SE、CBAM、ECA注意力機(jī)制(網(wǎng)絡(luò)結(jié)構(gòu)詳解+詳細(xì)注釋代碼+核心思想講解+注意力機(jī)制優(yōu)化神經(jīng)網(wǎng)絡(luò)方法)——pytorch實現(xiàn)

    SE、CBAM、ECA注意力機(jī)制(網(wǎng)絡(luò)結(jié)構(gòu)詳解+詳細(xì)注釋代碼+核心思想講解+注意力機(jī)制優(yōu)化神經(jīng)網(wǎng)絡(luò)方法)——pytorch實現(xiàn)

    ? ? ? ?這期博客我們來學(xué)習(xí)一下神秘已久的注意力機(jī)制,剛開始接觸注意力機(jī)制的時候,感覺很有意思,事實上學(xué)會之后會發(fā)現(xiàn)比想象中的要簡單,復(fù)雜的注意力機(jī)制后續(xù)會講解,這期博客先講解最常見的三種SE、CBAM、ECA注意力機(jī)制。 ? ? ? ?注意力機(jī)制更詳細(xì)的可以被稱

    2024年02月07日
    瀏覽(28)
  • 點云深度學(xué)習(xí)系列博客(五): 注意力機(jī)制原理概述

    點云深度學(xué)習(xí)系列博客(五): 注意力機(jī)制原理概述

    目錄 1. 注意力機(jī)制由來 2. Nadaraya-Watson核回歸 3. 多頭注意力與自注意力 4. Transformer模型 Reference 隨著Transformer模型在NLP,CV甚至CG領(lǐng)域的流行,注意力機(jī)制(Attention Mechanism)被越來越多的學(xué)者所注意,將其引入各種深度學(xué)習(xí)任務(wù)中,以提升性能。清華大學(xué)胡世民教授團(tuán)隊近期發(fā)

    2024年02月10日
    瀏覽(25)
  • 注意力機(jī)制(SE, ECA, CBAM, SKNet, scSE, Non-Local, GCNet, ASFF) Pytorch代碼

    注意力機(jī)制(SE, ECA, CBAM, SKNet, scSE, Non-Local, GCNet, ASFF) Pytorch代碼

    2023.3.2新增SKNet代碼 2023.3.10 新增 scSE代碼 2023.3.11 新增 Non-Local Net 非局部神經(jīng)網(wǎng)絡(luò) 2023.3.13新增GCNet 2023.6.7新增ASFF SE注意力機(jī)制(Squeeze-and-Excitation Networks) :是一種 通道類型 的注意力機(jī)制,就是在通道維度上增加注意力機(jī)制,主要內(nèi)容是是 squeeze 和 excitation . 就是使用另外一個

    2024年02月08日
    瀏覽(20)
  • Yolov5 中添加注意力機(jī)制 CBAM

    Yolov5 中添加注意力機(jī)制 CBAM

    CBAM(Convolutional Block Attention Module)是一種注意力機(jī)制,它通過關(guān)注輸入數(shù)據(jù)中的重要特征來增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)(CNN)的性能。CBAM的原理可以分為兩個部分:空間注意力模塊和通道注意力模塊。 空間注意力模塊:該模塊關(guān)注輸入特征圖的每個空間位置的重要性。它首先對特征

    2024年02月10日
    瀏覽(17)
  • 圖像中的注意力機(jī)制詳解(SEBlock | ECABlock | CBAM)

    圖像中的注意力機(jī)制詳解(SEBlock | ECABlock | CBAM)

    注意力機(jī)制目前主要有 通道注意力機(jī)制 和 空間注意力機(jī)制 兩種 我們知道,輸入一張圖片,神經(jīng)網(wǎng)絡(luò)會提取圖像特征,每一層都有不同大小的特征圖。如圖1所示,展示了 VGG網(wǎng)絡(luò)在提取圖像特征時特征圖的大小變化。 圖1 VGG網(wǎng)絡(luò)特征結(jié)構(gòu)圖 其中,特征圖常見的矩陣形狀為

    2024年01月19日
    瀏覽(16)
  • 改進(jìn)YOLOv8:添加CBAM注意力機(jī)制(漲點明顯)

    改進(jìn)YOLOv8:添加CBAM注意力機(jī)制(漲點明顯)

    計算機(jī)視覺中的注意力機(jī)制是一種聚焦于局部信息的機(jī)制,其基本思想是讓系統(tǒng)學(xué)會忽略無關(guān)信息而關(guān)注重點信息。這種機(jī)制在圖像識別、物體檢測和人臉識別等任務(wù)中都發(fā)揮了重要作用。 注意力機(jī)制的實現(xiàn)方法有多種,其中包括 空間注意力 模型、 通道注意力 模型、 空間

    2024年01月15日
    瀏覽(26)
  • 【深度學(xué)習(xí)】注意力機(jī)制

    注意力機(jī)制(Attention Mechanism)是一種在計算機(jī)科學(xué)和機(jī)器學(xué)習(xí)中常用的技術(shù),可以使模型在處理序列數(shù)據(jù)時更加準(zhǔn)確和有效。在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,每個神經(jīng)元的輸出只依賴于前一層的所有神經(jīng)元的輸出,而在注意力機(jī)制中,每個神經(jīng)元的輸出不僅僅取決于前一層的所有神經(jīng)

    2024年02月02日
    瀏覽(39)
  • 深度學(xué)習(xí)——常見注意力機(jī)制

    深度學(xué)習(xí)——常見注意力機(jī)制

    SENet屬于通道注意力機(jī)制。2017年提出,是imageNet最后的冠軍 SENet采用的方法是對于特征層賦予權(quán)值。 重點在于如何賦權(quán) 1.將輸入信息的所有通道平均池化。 2.平均池化后進(jìn)行兩次全連接,第一次全連接鏈接的神經(jīng)元較少,第二次全連接神經(jīng)元數(shù)和通道數(shù)一致 3.將Sigmoid的值固定

    2024年02月14日
    瀏覽(30)
  • 注意力機(jī)制SE、CBAM、ECA、CA的優(yōu)缺點

    注意力機(jī)制是一種 機(jī)器學(xué)習(xí)技術(shù) ,通常用于處理序列數(shù)據(jù)(如文本或音頻)或圖像數(shù)據(jù)中的信息篩選和集成。 注意力機(jī)制模塊可以幫助神經(jīng)網(wǎng)絡(luò)更好地處理序列數(shù)據(jù)和圖像數(shù)據(jù),從而 提高模型的性能和精度 。 優(yōu)點: 可以通過學(xué)習(xí) 自適應(yīng)的通道權(quán)重 ,使得模型更加關(guān)注有

    2024年02月03日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包