본문 바로가기

ML&DL/PyTorch

[PyTorch] AttributeError: 'str' object has no attribute '_apply' 해결

    net = net.to(self.device)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1145, in to
    return self._apply(convert)
AttributeError: 'str' object has no attribute '_apply'

 

이 오류가 난 원인은 모델 정의할 때,

 

model.py에서

net = ResNet

 

그리고 main.py에서

net = net.to(self.device)

 

이렇게 해버렸다.

 

 

net = ResNet    ->  net = ResNet() 이렇게 바꾸니 해결!

class를 정의해야되는데 str을 정의해버린 어처구니없는 실수..

 

string에 net.to(self.device)하니까 오류가 난 것이다. main파일에서 다 정의하면 금방 찾는데 model 파일들을 저장하는 model 폴더가 따로 있다보니 찾기가 어려웠다. 혹시 이 오류를 만난다면 pytorch 모듈을 정의할 때 이런 부분이 빠졌나 체크해보자. 정말 소소한 실수인데.... 바쁘게 짜다보니 이런 오류가 났다. 쉽긴한데 당연히 잘 썼을 줄 알고 이부분 체크를 안해서 찾기가 힘들었다. 이런 실수를 하다니..