OOM : Out Of Memory
iteration을 돌면서 발생
왜,어디서 발생했는지 알기 어려워서 대처가 어려움
#1
CUDNN_STATUS_NOT_INIT #GPU를 제대로 설치하지 않았을 때
#2
device-side-assert #OOM의 일종
1. 간단한 방법
Batch size를 줄이고 CPU를 비우고(커널 재실행) 다시 실행해보기
2. GPUUtil
GPU Util 로 현재 내 GPU의 상태를 확인한다
iteration 마다 메모리가 늘어나는지 확인할 수 있다
!pip install GPUtil
import GPUtil
GPUtil.showUtilization()
3. torch.cuda.empty_cache()
GPU에서 사용하지 않는 캐시 cache 정리
del은 주소 관계만 끊기 때문에 다른 함수다
축적되는 변수
python 기본객체로 변환하는 방법
#1
torch_tensor.item
#2
float(torch_tensor)
del 명령어
필요가 없어진 변수를 적절히 삭제한다
ex) for loop에 사용했던 변수
가능 batch size 실험
학습시 OOM이 발생하면 batch size를 점점 줄이다가 1까지 실험해보기
torch.no_grad()
inference시에는 no_grad로 설정해서 backward시에 쌓이는 메모리를 미리 방지
with torch.no_grad():
for data, target in test_load
...기타 코드
- colab에서는 큰 사이즈 모델 ex) lstm, cnn은 실행하지 않는 것이 좋음
- tensor의 float precision을 16bit으로 줄이기
'부스트캠프 AI Tech 3기 > 이론 : U-stage' 카테고리의 다른 글
[Day11] Data Visualization 2-1. Bar plot (0) | 2022.02.03 |
---|---|
[Day11] Data visualization 1-2. 시각화의 요소 (0) | 2022.02.03 |
[Day10] Pytorch 9. Hyperparameter Tuning (0) | 2022.01.28 |
[Day10] Pytorch 8. Multi-GPU 학습 (0) | 2022.01.28 |
[Day8] Pytorch 7. Monitoring tools for PyTorch (0) | 2022.01.27 |