크크루쿠쿠

Pytorch: IndexError: index out of range in self 본문

StackOverflow

Pytorch: IndexError: index out of range in self

JH_KIM 2021. 12. 22. 17:16
   ~/anaconda3/lib/python3.7/site-packages/torch/nn/modules/sparse.py in forward(self, input)
    112         return F.embedding(
    113             input, self.weight, self.padding_idx, self.max_norm,
--> 114             self.norm_type, self.scale_grad_by_freq, self.sparse)
    115 
    116     def extra_repr(self):

~/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py in embedding(input, weight, padding_idx, max_norm, norm_type, scale_grad_by_freq, sparse)
   1722         # remove once script supports set_grad_enabled
   1723         _no_grad_embedding_renorm_(weight, input, max_norm, norm_type)
-> 1724     return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
   1725 
   1726 

IndexError: index out of range in self

 

Cuda error 였나 CUDNN error 였나 무튼 그게 났어서 CPU로 돌려서 에러를 확인한 결과 embedding layer에서 이러한 오류가 나는 경우를 종종 볼수가 있다.

이는 보통 transformer 계열 모델을 사용할 때 나는 오류인데 특별한 해결법은 없지만 보통 tokenizer 에 사용된 vocab_size가 문제를 일으키는 경우가 많다.

model에 맞지않는 vocab_size를 사용할 때 이러한 오류가 일어나므로 혹여 다른 tokenizer를 사용했다거나 vocab을 늘렸는지에 대해 확인하면 좋을 것 같다.

Comments