해결된 질문
작성
·
385
0
안녕하세요 .. ? 강사님
강의 잘 듣고 있고, 정말 많이 배우고 있습니다.
자꾸 귀찮게 해드리는 것은 아닌지 죄송할 따름입니다.
Oxford Pet의 dataset의 학습을 다 끝내거나, cfg와 epoch5.pth로 inference_detector로 모델을 만들어 하나의 이미지에
object detection을 수행을 끝낸 뒤에 리눅스에서 nvidia-smi로 gpu 사용량을 확인해 보면 학습 또는 object detection이 끝났음에도 gpu 사용량이 유지되는 것을 확인했습니다.(학습이 끝난 뒤에도 몇 분이 지났음에도 nvidia-smi를 눌렀을 때, 10650Mib의 사용량을 유지 했습니다.)
이 gpu 사용량이 왜 유지 되는 것인지 혹시 알 수 있을까요 .. ?
아래 사진은 object detection이 끝난 후 수분이 지났음에도 유지되는 gpu 사용량 사진입니다.
답변 1
1
안녕하십니까,
tensorflow 또는 pytorch의 경우 기본적으로 GPU에서 한번 잡은 메모리를 잘 해제하지 않습니다. 학습이 끝나도 모델을 학습 시킬 때 잡았던 메모리를 일반적으로는 잘 release 하지 않습니다. 물론 명시적으로 GPU에서 Memory를 release하는 api가 tensorflow나 pytorch에 있지만, 이렇게 할 경우 메모리에 있는 모델까지 다 날라가게 됩니다.
mmdetection에서 어떻게 구현을 했는지는 모르지만 아마도 이러한 특성 때문에 학습이 끝나도 여전히 GPU에서 메모리를 잡고 있을 것입니다. 하지만 해당 메모리는 다시 재 활용되기 때문에 다시 학습 시킬 때 메모리가 부족해 지지는 않습니다.
감사합니다.
감사합니다 ~!!