BLOG main image
분류 전체보기 (12)
[Python] Tips (1)
잡답 (2)
Programing - python3 (0)
Blockchain - Bitcoin - 4th .. (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
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()