【已解决】TypeError: __init__() takes 1 positional argument but 3 were given

YOLOv5自己写的模块运行时总是报这个错

代码如下,这是一个ECA注意力机制,定义函数时应该用def __init__(),默认用的是__int__

class ECA(nn.Module):
    def __init__(self, c1, c2, k_size=3):
        super(ECA, self).__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.conv = nn.Conv1d(1, 1, kernel_size=k_size, padding=(k_size - 1) // 2, bias=False)
        self.sigmoid = nn.Sigmoid()

    def forward(self, x):
        
        y = self.avg_pool(x)
        y = self.conv(y.squeeze(-1).transpose(-1, -2)).transpose(-1, -2).unsqueeze(-1)
        y = self.sigmoid(y)

        return x * y.expand_as(x)

你可能感兴趣的:(python,深度学习)