python

[에러] RuntimeError: CUDA error: device-side assert triggered

jiheek 2022. 5. 20. 13:27

오늘도 평화로운 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