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

Python memory leak 발견

 Python memory leak 발견

Unet 모델을 이용하여 deep learning을 하던 중 keras 2.4.0 버전에서 memory leak를 발견. 총 3대의 PC중 2대는 rtx 20series, 1대는 rtx 30series.

원인 : 한 줄씩 디버깅 한 결과 model.predict_on_batch와 imread를 통해 불러온 메모리들이 지속적으로 쌓이는 것을 발견. 해결방안1) predict와 imread로 할당한 메모리를 해당 프로세스가 끝난 뒤 해제시키기 20210429) model.predict_on_batch함수에서 model.predict_generator함수로 변경. model.predict_generator 함수로부터 전해받은 인자를 저장시킨 후, python의 Garbage Collection(gc)를 import하여, 참조된 인자가 없는 객체에 대해서 수거를 해주는 함수인 gc.collect()를 사용한 뒤, del()함수를 통하여 predict의 결과를 저장한 객체를 지워주었다.

실행...