2019. 5. 10. 02:15
[카테고리 없음]
OOM Error를 CNN, transfer learning 할 때, 특히 Resnet 등 무거운 모델을 돌릴때 지겹게 보아오고 있다.
구글링으로 몇가지 정리해보면,
1. batch_size가 큰 경우,
2. Model을 두번 compile 한 경우
3. GPU가 이상이 있는 경우
이고, 몇가지 더 본 경우는
4. Fully-connected 단에서 Dense layer가 높은 경우, 즉 Train parameter가 매우 큰 경우
5. Session이 clear 되지 않은 경우
이다.
해결책으로 제시할 수 있는 것이,
1. batch_size를 줄여가면서 Test를 해본다.
2. Model.compile를 찾아서 문제를 해결한다.
3. 터미널에서 아래의 명령어를 이용하여 reset을 수행한다.
nvidia-smi -r
4. Fully-connected 단을 확인하여 Dense layer의 연결수를 줄이거나 제거한다.
5. 세션을 clear하는 것을 loop 내에 둔다.
from keras import backend as K
K.session_clear()