로딩
요청 처리 중입니다...

Python) Keras의 predict_on_batch Memory leak

 Python) Keras의 predict_on_batch Memory leak

학습을 통해 모델을 저장한 뒤 불러와서 예측을 진행. 약 12시간 후 predict_on_batch 단에서 OOM error, dst tensor error 등 GPU Memory가 가득 차 코드가 정지되는 현상을 발견하였다.

GPU Memory가 채워지는 부분을 확인한 결과, 코드의 첫 시작 후 동일한 사용량을 보였지만, 반복될 수록 점점 증가하는 것을 확인, 코드 분석에 들어갔다. 데이터를 불러와 전처리를 한 뒤 predict_on_batch 함수에 넣는 과정까지 중 예측 함수단에서 model을 predict 경로의 폴더 하나가 끝날 때 마다 재 load하는 것을 확인.

해결법) 전체 코드에서 단일 모델을 사용하기 때문에 모델은 코드 첫 시작과 함께 한 번만 선언. 테스트 결과) 12시간이 지나도 코드가 정상적으로 동작하는 것을 확인.

모델을 반복적으로 불러오는 과정에서 GPU 메모리가 제대로 해소되지 않는 현상이었다....