데이터과학 삼학년

pytorch vocab 로드시 error 처리 (‘Vocab' object has no attribute '_modules' ~) 본문

Machine Learning

pytorch vocab 로드시 error 처리 (‘Vocab' object has no attribute '_modules' ~)

Dan-k 2023. 2. 22. 21:49
반응형

pytorch 모델로 저장한 vocab을 load할 때 아래와 같은 오류가 난다면,

vocab 생성시의 pytorch 버전과 vocab을 불러오는 pytorch 버전을 확인해보는 것이 좋다.

 

간혹 상향 버전이지만 이전 버전의 기능을 쓰기 원하면 패키지중 legacy를 지원해주는지 확인하면 된다.

 

torch vocab을 이용할때 pretrained vector를 이용하여 구성하는 방법은

(개인적으로) torchtect 0.10 이전 버전들이 편하게 쓸 수 있었지만,

버전이 상향되면서 해당 기능 구현이 조금 변경되어…난감할때가 있었다.

 

이때, legacy를 이용하여 아래와 같이 제구성 했다.

import torch

from torchtext.vocab import Vectors #,Vocab
 
#torchtext 0.10 이전 버전의 Vocab을 이용하려면 legacy에서 불러오면 가능
from torchtext.legacy.vocab import Vocab


wv = Vectors(name='./pretrained/words1')
vocab = Vocab(counter_subword, min_freq=5, specials=('<unk>','<pad>'), vectors=wv)    

torch.save(vocab, 'vocab.pth')
vocab_obj = torch.load('vocab.pth')
728x90
반응형
LIST
Comments