인프런 커뮤니티 질문&답변

김성민님의 프로필 이미지
김성민

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

Transfer leanring 질문사항

작성

·

230

0

안녕하세요 강사님
 
강의 잘 듣고 있습니다.
 

Transfer learning 관련 문의사항이 있습니다. 주차관련 이동체 인지영상으로 Pre-trained 된 모델을 사용하여 새로운 데이터셋을 학습시키고자 합니다. 새로운 데이터셋은 새로운 사진과 COCO Format입니다.
객체의 Category ID와 BBOX 를 모두 학습시켜야 할 것으로 생각되는데,
어떻게 기존 모델에 추가로 학습을 시켜야 하는지 방법을 잘 모르겠습니다.

 
혹시 CNN Fundamental 강의 또는 이 딥러닝 강의에서 해당 부분에 대한 정보를 얻을 수 있거나
또는 참고할만한 사이트가 있을까요...?

감사합니다.

답변 2

0

김성민님의 프로필 이미지
김성민
질문자

감사합니다 강사님!!

답변해주신것으로 보았을 때, 제가 그냥 처음부터 학습을 시켜야 할 것 같습니다 ㅠㅠ

궁금한게 있는데
대회가 어쨌든 mAP@0.75 이상 스코어에서의 Class 와 bbox 위치를 얼마나 잘 맞추는지
겨루는 대회인데 인퍼런스 속도는 중요치 않습니다.

그렇다면,
ㅇ 공식적으로 성능이 좋다는 1 스테이지 디텍터인 AutoML EfficientDet 을 사용할지,
ㅇ RCNN 계열의 2 스테이지 디텍터인 Resnet 을 사용할지,

결정을 못내렸습니다. 물론 두가지를 다 해보고 성능 좋은 걸 쓰면 좋겠다만
현실적으로 시간이 없습니다 ㅠㅠ

혹시 두개 중, 추천해주실 수 있는 알고리즘이 있을까요? 

권 철민님의 프로필 이미지
권 철민
지식공유자

아이고 이거 댓글이 달려 있는걸 깜빡 했습니다

여러개를 해보시면 더 좋습니다. 뭐가 좋을지는 돌려 봐야 압니다

Yolo v5와 efficientdet 두가지 돌려 보시고 판단하시면 좋을거 같습니다 

코랩 프로 하시면 gpu 세션을 두개까지 얻으실수 있습니다. 한 세션에서 한 모델 학습시킬때 다른 세션에서 다른 모델을 병렬로 학습시키면 시간을 절약하실수 있을 것입니다

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

Pretrained 모델을 적용할 때 유의할 점은 해당 pretrained 모델이 어떤 framework으로 만들어졌는가 입니다. 

그러니까 mmdetection으로 만든 모델은 mmdetection으로 pretrained 모델을 적용하여야 합니다. 물론 mmdetection으로 만든 모델을 다른 framework(예를 들어 Detectron)으로 로딩을 시도해 볼수 있습니다. 예를 들어 pytorch를 사용하신다면 torch.save()로 저장된 모델을 torch.load_state_dict()로 다시 로딩해서 학습을 시작할 수도 있습니다. 

그런데 이게 말처럼 쉽지 않습니다. 대부분 다른 framwork에서 만든 pretrained 모델을 이런식으로 로딩해서 재학습하기가 어렵습니다.  아래는 Detectron 2로 학습된 모델을 mmdetection으로 로딩할 수 있다고 합니다만 실제로 수행이 잘 될지는 의문입니다. 

https://github.com/open-mmlab/mmdetection/issues/3835

pretrained 모델이 특정 framework에서 만들어졌고 이를 다른 framwork에서 사용하신다면 어려 울 수 있습니다.  만약 mmdetection에서 만든 모델을 mmdetection에서 다시 재학습하는 것이라면 문제 될게 없습니다. Dataset의 유형, 즉 coco인지 아닌지는 크게 상관없습니다.  강의의 실습 영상 대로 Dataset를 mmdetection용으로 만드시고 pretrained 모델을 로딩한 다음 재 학습하시면 됩니다. 

감사합니다. 

김성민님의 프로필 이미지
김성민

작성한 질문수

질문하기