• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

메모리 부족으로 Faster R-CNN 학습을 할 수 없습니다

22.11.23 12:25 작성 조회수 2.48k

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

(노션에 다운받을 수있습니다)mm_faster_rcnn_train_kitti.ipynb

여기에 바로 올리고 싶었는데 인프런이 허용을 안해주네요

 

MMdetection의 이해와 Faster R-CNN 적용 실습 부분입니다.

 

문제 및 상황인식:

학원 가상환경에서 문제메모리가 부족하다고 뜨면서 커널이 끊겼습니다.(목차 3번 사진 참고)

저는 이 문제가 배치 사이즈가 커서 생긴 문제라고 보았습니다. 하지만 아래의 목차 5번과 같이 배치 사이즈를 줄여도 메모리 부족이 뜹니다. 어떻게 하면 해결할 수있을까요?

배치나 기타 하이퍼 파라미터를 조정해도 학원 가상환경의 메모리 자체가 적어서 생기는 문제일까요?

 

(참고로 구글 코렙에서는 잘 작동했습니다. 다만 GPU 사용량이 초과해서 None으로 학습을 하면 cuda를 못쓴다고 에러가 납니다.)

 

목차

  1. 상황설명

  2. 상황설명

  3. 문제발생 및 사진

  4. 해결시도1, 실패

  5. 해결시도2, 실패

 

  1. (상황설명) 저는 AI 국비지원 학원을 다니는 학생입니다. 학원에서 배우는 것만으로는 MMdetecrtion을 다룰 수 없어서 이 강의를 듣게 되었습니다. 이걸 듣고 난 후 MMdetecrtion으로 학원 과제를 수행하고자 했습니다. 그리고 구글 코랩은 공짜로 돌리다가 GPU 제한으로 못쓰고 학습이 안되었습니다.

  2. (상황설명) 학원에서 아래와 같은 성능의 전용 가상환경을 제공합니다. 그래서 경로만 조정하고 그대로 똑같이 돌렸습니다.

    스크린샷 2022-11-23 오전 11.41.46.png

3. (문제발생)그런데 학습을 하는데 아래의 그림과 같이 메모리가 부족하다고 뜨면서 커널이 끊겼습니다.

스크린샷 2022-11-23 오전 11.52.26.png스크린샷 2022-11-23 오전 11.52.36.png

 

4. (해결시도1, 실패) cfg.data.samples_per_gpu = 4 넣기

아래의 그림과 같이 cfg.data.samples_per_gpu = 4를 넣었지만,

auto_scale_lr = dict(enable=False, base_batch_size=16)는 그대로 16이었습니다. 일단 무시하고 돌려보았지만 여전히 실패했습니다.

스크린샷 2022-11-23 오전 10.53.14.png

 

5.( 해결시도2, 실패) defaul_runtime.py에 들어가서 batch size를 1로 바꾸기

그결과 auto_scale_lr = dict(enable=False, base_batch_size=1)로 바뀌었습니다.

 

학원 가상환경에서 문제메모리가 부족하다고 뜨면서 커널이 끊겼습니다.(목차 3번 사진 참고) 어떻게 하면 좋을까요?

답변 1

답변을 작성해보세요.

0

안녕하십니까,

음. 학원 가상 환경의 GPU 메모리가 부족해 보이지는 않습니다.

실습에서 사용하는 Colab의 GPU도 16G이고 학원 가상환경의 GPU도 16G로 보이는군요.

메모리 부족이 나오는 이유는 저도 잘 모르겠습니다만, 혹 GPU 메모리가 아니라 CPU 메모리(RAM)이 부족한건 아닌가 싶습니다.

학원 가상환경에서 아래 명령어로 Memory 정보를 출력해서 여기에 올려 주셨으면 합니다.

cat /proc/meminfo

만약 CPU 메모리가 충분하지 않으면 가상 환경을 재 기동후 메모리를 다시 확인해 보시거나, 학원 시스템 관리자에게 문의가 필요할 것으로 보입니다.

일단 강의를 들으셔야 하니까, 코랩 무료 버전으로 실습을 수행하지 마시고, 코랩 Pro 버전을 권장드립니다.

월 만원(환율이 올라서 만 오천원 정도 할것도 같습니다만 ^^)가 들것 같지만, 큰 부담(?)은 아니실거라 생각됩니다.

그리고 cuda 이슈는 아닐것 같습니다만, CPU 메모리 문제도 아니면, 먼저 cuda 버전과 pytorch 버전을 강의와 동일하게 맞춰보실것을 권장 드립니다.

현재 강의 실습 구동 환경은 pytorch 1.12.1 그리고 cuda 11.3 입니다. 가상환경은 지금 cuda가 11.0으로 보입니다.

 

윤정덕님의 프로필

윤정덕

질문자

2022.11.24

선생님 이렇게 빨리 답변 주셔서 감사합니다!

  1. 선생님 말씀을 듣고 일단 구글 코랩 Pro를 구매했습니다

  2. 일단 선생님 말씀대로 학원에 문의를 했습니다.

  3. cat /proc/meminfo로 메모리를 비교해보니 구글 코랩 pro와 비슷한 용량이었습니다.

    +질문에서 돌렸던 것은 구글 코랩에서 돌렸던 것과 같은 버전이었습니다. 즉, jupyter notebook으로 버젼을 보면1.12.1+cu113이었습니다. 그런데도 커널이 끊기는 현상이 발생했습니다. GPU는 똑같이 쿠다 11.0보였습니다.

 

이렇게 빠르고 구체적으로 알려주셔감사합니다!!!

 

cat /proc/meminfo 이용해서

CPU 메모리 비교

image

 

image

 

 

구글 코랩 Pro

image

 

학원 가상환경

image

image

 

 

 

 

학원 가상환경의 /proc/meminfo를 보면 MemFree가 160M 정도 밖에 안되는 군요. 코랩은 9G 정도 됩니다.

학원 시스템 관리자와 애기해보셔서 학원 가상환경의 free memory를 더 늘려 보시지요. 지금은 너무 작은것 같습니다.