pytorch コードは、アテンション メカニズムの PfAAM_Attendance を実装します。

PfAAM アテンション メカニズム

PfAAMアテンションメカニズムは、2022年に提案された、チャネルアテンションと空間アテンションを組み合わせたプラグアンドプレイを実現できるノンパラメトリックアテンションメカニズムです。
論文アドレス: https://arxiv.org/abs/2210.07828
構造図
コードは次のとおりです。

import torch
from torch import nn

class PfAAMLayer(nn.Module):
    def __init__(self, c1, c2, ratio=16):
        super(PfAAMLayer, self).__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.sigmoid = nn.Sigmoid()
        
    def forward(self, x):
        b, c, _, _ = x.size()
        y = self.avg_pool(x).view(b, c, 1, 1).expand_as(x)
        z = torch.mean(x, dim=1, keepdim=True).expand_as(x)
        return x * self.sigmoid(y*z)

おすすめ

転載: blog.csdn.net/DM_zx/article/details/132302306