GPUtil
GPU의 상태를 보여주는 모듈이다.
!pip install GPUtil
import GPUtil
GPUtil.showUtilization()
OOM (Out Of Memory)
- GPU에서 메모리가 부족할 때 발생한다.
- batch 사이즈를 줄인 뒤, GPU를 clean 시키고 재실행시켜 본다.
del 명령어
python에서는 loop이 끝나도 loop 안에서 선언된 변수가 메모리를 차지하고 있기 때문에, del 명령어를 사용해서 삭제해주는 것이 필요하다.
for x in range(10):
i = x
print(i) # 출력: 9
torch.cuda.empty_cache()
- 사용되지 않는 GPU 캐시를 정리하여 가용 메모리를 확보한다.
- del은 객체를 삭제하지만, 해당 객체에 대한 모든 참조가 삭제되어야 garbage collector에 의해 메모리 할당이 해제된다는 차이점이 있다.
torch.no_grad()
모델의 학습이 끝난 뒤, 추론 단계에서는 torch.no_grad()를 사용해서 backward로 인해 메모리가 쌓이지 않도록 한다.
with torch.no_grad():
for data, target in test_loader:
output = network(data)
test_loss += F.nll_loss(output, target, size_average=False).item()
pred = output.data.max(1, keepdim=True)[1]
correct += pred.eq(target.data.view_as(pred)).sum()
그 외 다양한 GPU 에러 정리
https://brstar96.github.io/devlog/shoveling/2020-01-03-device_error_summary/
이유를 알 수 없는 GPU 에러 정리(device-side assert, CUDA error, CUDNN_STATUS_NOT_INITIALIZED 등등…)
딥러닝 모델 학습에 있어서 빠지면 서러운 GPU는 간혹 알 수 없는 오류를 뿜으며 뻗을 때가 있죠. 이 포스팅에서는 깃허브 이슈 페이지와 스택 오버플로우에서 자주 만날 수 있는 GPU-side 에러들에
brstar96.github.io
'AI > PyTorch' 카테고리의 다른 글
TOKENIZERS_PARALLELISM=(true | false) 경고 메세지는 무슨 뜻일까? (0) | 2023.07.21 |
---|---|
[PyTorch] Transfer Learning (전이 학습) (0) | 2023.03.23 |
[PyTorch] 모델 저장하기 및 불러오기 (0) | 2023.03.20 |
[PyTorch] Autograd (0) | 2023.03.20 |
[PyTorch] 모듈들에 custom 함수 적용시키기 (0) | 2023.03.17 |