반응형
반응형
#pytorch
#NVIDIA
Pytorch에서 모델을 학습시킬 때, 간혹 "CUDA out of memory"의 오류가 발생하면서 학습이 진행이 안되는 경우가 있는데, 가지고 있는 GPU의 memory 크기보다 사용하려는 모델 또는 데이터의 크기가 커서 발생한 오류입니다.
(혹은 CUDA, cudnn 연결이 제대로 되지 않아서 발생할 수 있음, 모든걸 다 해보고 안되면 CUDA 및 cudnn 재설치 하길 바람.)
1. Batch Size 줄이기
- 학습에 사용하려는 데이터의 크기도 크고, Batch Size도 커서 메모리를 다 차지해 버릴 수 있으니까 DataLoader 만들 시 Batch Size를 줄여보면 됨.
- ex) 제가 Input Data : (128(배치사이즈), 2016, 17),의 데이터로 Transformer를 통해 학습하려 했는데, Out of Memory가 뜨더라구요 알고보니까 데이터가 들어가면서 GPU 메모리를 32GB 이상 차지해버려서 그렇더라구요..
- 배치를 16으로 줄여버리니까 정상동작 했어요
2. 모델 Unit 수 줄이기
- 배치사이즈를 다 줄였는데도 오류가 난다면 모델 파라미터**를 확인하면서 Unit 줄이면 됩니다.
*파라미터 확인방법
- tensorflow
model.summary()
- pytorch
pip install pytorch_model_summary
pytorch_model_summary.summary(model, x, show_input=True)
위의 테스트 진행할 때 "nvidia-smi -l" 등으로 실시간 GPU 소모량 확인하면서 진행하시면 훨씬 수월합니다.
더 좋은 방법이 있으면 알려주세요. 수정하겠습니다
반응형
'programming > AI' 카테고리의 다른 글
(windows)윈도우 아나콘다 설치 (0) | 2023.01.27 |
---|---|
(Ubuntu)Ubuntu 20.04에 Anaconda 설치 (0) | 2022.11.23 |
(윈도우) 딥러닝 환경구축(NVIDIA, CUDA, cudnn, 파이토치) (0) | 2022.07.20 |