[Error] AttributeError: module 'torch.nn' has no attribute 'Conv2D' 해결 방법
Computer Vision/Pytorch

[Error] AttributeError: module 'torch.nn' has no attribute 'Conv2D' 해결 방법

반응형

 

멍청한 실수를 했지만..

반복하지 않기 위해 기록하고자 한다.

 

AttributeError: module 'torch.nn' has no attribute 'Conv2D'

속성에러 : torch.nn이라는 모듈에는 Conv2D라는 속성이 없다.

 

 

이상하다..

분명히 고쳤는데 왜 안될까...라고 생각하고 디버깅을 했다.
(pointwise가 틀렸다고 나와있는데도 못 알아차렸다..)

 

class Depthwise(nn.Module):
    def __init__(self, in_channels, out_channels, stride=1):
        super().__init__()
        
        self.depthwise = nn.Sequential(
            nn.Conv2d(in_channels, in_channels, 3, stride=stride, padding=1, groups=in_channels, bias=False),
            nn.BatchNorm2d(in_channels),
            nn.ReLU6()
        )
        
        self.pointwise = nn.Sequential(
            nn.Conv2D(in_channels, out_channels, 1, stride=1, padding=0, bias=False),
            nn.BatchNorm2d(out_channels),
            nn.ReLU6()
        )

    def forward(self, x):
        x = self.depthwise(x)
        x = self.pointwise(x)
        return x
위에는 소스코드고, self.depthwise부분을 #으로 디버깅 했는데도 똑같은 오류 떠서..
설마.. 하고 pointwise쪽 보니까 Conv2D로 틀리게 적어놨더라.
 
 
결론.

 

torch.nn은 Conv2D는 없고, Conv2d는 있다.

 

반응형