티스토리 뷰
에러 해결
[에러 해결] RuntimeError: Expected tensor for argument #1 'indices' to have scalar type Long; but got torch.FloatTensor instead (while checking arguments for embedding)
체봄 2022. 11. 2. 21:22
이 에러는 float 타입의 텐서에 너무 큰 값을 저장할 때 발생한다.
다시 말하자면, int 타입으로 저장해야 할 텐서를 데이터 타입을 지정해주지 않아서 기본 타입인 float 타입으로 만든 경우에 흔히 발생한다.
예시 코드>
tokens_list
# [14054, 10788, 9241, 18831, 10396, 10910, 14304, 3, 3, 3,
# 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
tokens_tensor = torch.Tensor(tokens_list)
# tensor([1.4054e+04, 1.0788e+04, 9.2410e+03, 1.8831e+04, 1.0396e+04, 1.0910e+04,
# 1.4304e+04, 3.0000e+00, 3.0000e+00, 3.0000e+00, 3.0000e+00, 3.0000e+00,
# 3.0000e+00, 3.0000e+00, 3.0000e+00, 3.0000e+00, 3.0000e+00, 3.0000e+00,
# 3.0000e+00, 3.0000e+00])
해결 방법
1. tensor를 만들 때 long 타입으로 만들기
tokens_tensor = torch.LongTensor(token_list)
# tensor([14054, 10788, 9241, 18831, 10396, 10910, 14304, 3, 3, 3,
# 3, 3, 3, 3, 3, 3, 3, 3, 3, 3])
2. 이미 만들어진 tensor를 long 타입으로 변환
tokens_tensor = tokens_tensor.long()
# tensor([14054, 10788, 9241, 18831, 10396, 10910, 14304, 3, 3, 3,
# 3, 3, 3, 3, 3, 3, 3, 3, 3, 3])
tokens_tensor = torch.as_tensor(tokens_tensor, dtype=torch.long)
# tensor([14054, 10788, 9241, 18831, 10396, 10910, 14304, 3, 3, 3,
# 3, 3, 3, 3, 3, 3, 3, 3, 3, 3])
반응형
'에러 해결' 카테고리의 다른 글
[에러 해결] RuntimeError: CUDA error: device-side assert triggered (0) | 2023.01.20 |
---|---|
[에러 해결] UnicodeDecodeError: 'cp949' codec can't decode byte: illegal multibyte sequence (0) | 2023.01.20 |
[에러 해결] NameError: name '_C' is not defined (0) | 2022.10.24 |
[에러 해결] CPU에서 annoy 설치 시 에러 (0) | 2022.10.24 |
[에러 해결] /dev/loop 사용률 100%로 인한 'No space left on device' 에러 (0) | 2022.10.11 |
댓글