본문 바로가기
개발 일기/Pytorch

[Pytorch|ERROR] index out of range in self

by URMOO 2023. 1. 28.
반응형

pytorch로 rnn 텍스트 생성모델 만들기 도전을 하고 있는데,
임베딩 레이어에서  index out of range in self 이런 에러가 발생하였다. 

예제랑 똑같이했다고 생각했는데 왜 이런 에러가 발생할까.... 인덱스? 잘 맞는데.. 왜 그럴까..
하고 검색을 해봤는데난 바보로 결론이 났다^^.. 


vocab을 만들 때, 텍스트의 길이를 맞추기 위해 padding을 후반에 넣어주었다. 
이때, 이미 start_code와 end_code를 0,1번에 사용하고 있어 괜찮겠지 싶어 -1 값으로 패딩값을 넣어주었다..

[0,3,3,7,-1,-1,-1,-1,-1,-1-1,-1,-1,-1]

이러니 당연히 안되지... 귀찮음을 피하려다가 오히려 망하는 지름길로 향했다. ^^...

정확하게 코드를 뜯어보지 않아서 무엇이 원인인지는 모르겠지만 아마 어떠한 값을 줄 때 0번부터 시작하는거 같은데 내가 범위를 벗어나는 -1 값을 넣는 바람에 그렇게 된 것같다.. 가중치 값이 그런걸까..? 코드를 뜯어봐야겠다. 

무튼. -1 값 말고, 0 이상의 값으로 다시 주니 원하는 결과로 잘 출력이 되었다.

output = model(dataset.x_data).to(device)
print(output)

# 결과
tensor([[-0.0865,  0.0090,  0.1554,  ..., -0.1185, -0.2247,  0.1879],
        [ 0.0419, -0.0886, -0.0320,  ..., -0.2482, -0.1532,  0.0439],
        [ 0.0389, -0.0676, -0.0442,  ..., -0.1716, -0.2299,  0.1758],
        ...,
        [-0.0708,  0.0619, -0.0006,  ..., -0.0811, -0.1715,  0.2274],
        [-0.0693, -0.1232,  0.1138,  ...,  0.0042,  0.1251,  0.0775],
        [-0.0790, -0.0164,  0.1349,  ..., -0.0657,  0.0292,  0.1004]],
       device='cuda:0', grad_fn=<ToCopyBackward0>)

오백년만에 쓰는 개발일기.. 에러로 다시 시작^^^^^
쉬운 에러지만 나같은 쌩초보같은 사람은 정리 안하면 또 까먹겠지..^^.. 난 나를 너무 잘 안다.. ^^.. 

반응형

'개발 일기 > Pytorch' 카테고리의 다른 글

[Skorch] pytorch에 GirdSearchCV 적용하기  (0) 2023.07.06

댓글