본문 바로가기

연구/pytorch

[Error 기록] RuntimeError: CUDA out of memory. Tried to allocate 2.39 GiB (GPU 0; 10.92 GiB total capacity; 4.87 GiB already allocated; 2.05 GiB free; 7.54 GiB reserved in total by PyTorch)

반응형

원인 : GPU가 한번에 감당하는 연산이 너무 많아서? 인것같다 

해결책(from stack overflow) : batch사이즈를 줄이면 해결이 된다고 한다.

특히 나는 eval_net에서 문제가 생긴다.
eval에서 마지막에 한번에 ypreds를 다루는 부분에서 문제가 생기는데, 이 부분은 batch단위로 데이터를 다루는게 아니라 test데이터를 모두 한꺼번에 처리하는데 이 때 GPU가 감당할 수 있는 양을 넘은 것으로 보인다.

 

위 코드의 ypreds부분에 에러가 생긴다.

ypreds.append(y_preds)로 데이터를 모아둔 후

torch.cat으로 한번에 처리하기엔 GPU가 감당할 수 있는 데이터용량을 넘긴것 같다.

반응형