AttributeError: Can't get attribute 'BERTClassifier' on <module '__main__' from 'path'

Volc·2022년 4월 7일
0

Error

목록 보기
40/64

Error

  • Flask에서 model을 불러오려고 하니 다음과 같이 error가 발생하였다.
    sentimentModel = torch.load('./model.pt', map_location='cpu')

Error 해결

  • torch.save(model, 'model.pt')로 저장하여 model 전체를 불러오려고 하니 어떤 모델인지 정의 되어 있지 않아 에러가 나는거 같았다.
  • torch.save(model.state_dict(), 'model.pt')로 저장한 후 모델을 정의하고 정의된 모델에 load를 하여 가중치와 편향을 부여하는 방법으로 해결하였다.
    model = BERTClassifier(bertmodel,  dr_rate=0.5).to(device)
    
    model.load_state_dict(torch.load('model_state_dict.pt', map_location='cpu'))

참고 사이트

[Pytorch] 모델 저장 방법, 그리고 전체 저장과 state_dict 저장의 차이

profile
미래를 생각하는 개발자

1개의 댓글

comment-user-thumbnail
2022년 6월 3일

안녕하세요.
저도 비슷한 에러가 뜨고 있는데 해결 되지 않아서 어려움을 겪고 있습니다.
혹시 해결하셨던 소스코드나, 자세한 답변 부탁드려도 될까요 ?
비슷하게 했으나 전체적인 구조가 잘 안잡혀서 어렵습니다 ..
답장 해주시면 정말 감사하겠습니다 ..!!

답글 달기