티스토리 뷰

 

이 에러는 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])

 

반응형

댓글