WongKinYiu / PyTorch_YOLOv4

PyTorch implementation of YOLOv4

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Is this CBAM correct?

q1135718080 opened this issue · comments

I try to implement CBAM with Pytorch, but I don't know if it's written correctly. Can you help me see it
Thank you very much.

class CAP(nn.Module):
    def __init__(self, in_planes, ra):
        super(CAP, self).__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.max_pool = nn.AdaptiveMaxPool2d(1)

        self.fc1 = nn.Conv2d(in_planes, in_planes // ra, 1, bias=False)
        self.relu1 = nn.ReLU()
        self.fc2 = nn.Conv2d(in_planes // ra, in_planes, 1, bias=False)

        self.sigmoid = nn.Sigmoid()

    def forward(self, x):
        avg_out = self.fc2(self.relu1(self.fc1(self.avg_pool(x))))
        max_out = self.fc2(self.relu1(self.fc1(self.max_pool(x))))
        out = avg_out + max_out
        return self.sigmoid(out)
     elif mdef['type'] == 'cap':
            in_planes = mdef['filters']
            ra = mdef['ratio']
            modules = CAP(in_planes,ra)
######SAM######
[cap]
filters = 512
ratio = 16

[convolutional]
batch_normalize=1
size=1
stride=1
pad=1
filters=512
activation=logistic

[sam]
from=-2
######SAM######
#######CBAM#######
[avgpool]

[convolutional]
filters=16
size=1
stride=1
activation=linear

[convolutional]
filters=256
size=1
stride=1
activation=linear

[route]
layers=-4

[maxpool]

[convolutional]
filters=16
size=1
stride=1
activation=linear

[convolutional]
filters=256
size=1
stride=1
activation=linear

[route]
layers=-1,-5

[Sigmoid]

[convolutional]
batch_normalize=1
size=1
stride=1
pad=1
filters=256
activation=logistic

[sam]
from=-2
#######CBAM#######

Hi,
I got this Warning: Unrecognized Layer Type: Sigmoid, how to add the Sigmoid layer? thanks.