[에러] RuntimeError: CUDA error: device-side assert triggered
오늘도 평화로운 pytorch 에러 일기
에러 내용:
loss = self.loss(output, target)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl
return forward_call(*input, **kwargs)
File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/loss.py", line 1122, in forward
return F.cross_entropy(input, target, weight=self.weight,
File "/opt/conda/lib/python3.8/site-packages/torch/nn/functional.py", line 2805, in cross_entropy
return torch._C._nn.cross_entropy_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index)
RuntimeError: CUDA error: device-side assert triggered
CUDA error라고 해서 GPU 할당 관련 문제인가? 했지만, 찾아보니 입출력 데이터의 차원 설정을 잘못 했을 때 자주 발생하는 에러라고 한다.
cross_entropy_loss에서 에러가 생김. label의 입력을 잘못 줬을 것 같아 따라가보았다.
5개의 class에 대해 label을 [0, 1, 2, 3, 4]로 입력시켜주어야 하는데 [1, 2, 3, 4, 5]로 입력시킨걸 확인하고 수정하니까 잘 돌아갔다!
오늘의 교훈: 입력 데이터와 레이블의 차원과 값을 잘 확인하자
도움 받은 글
https://ndb796.tistory.com/509
[PyTorch 오류 해결] RuntimeError: CUDA error: device-side assert triggered
오류 메시지는 다음과 같다. 이 오류는 복잡한 GPU 디바이스 환경 설정 관련 오류인 것처럼 보이지만, 실제로는 입출력 차원(dimension)을 제대로 맞추지 않아서 발생하는 경우가 많다. 필자의 경우
ndb796.tistory.com