24.08.16 20:53 작성
·
116
0
https://github.com/WongKinYiu/yolov9/tree/main
욜로에서 models.yolo.py나 models.detect.custon.yaml을 제작해 pth로 저장하고자합니다..
기존 욜로백본 yolov9.yaml을 수정해도 상관없고, 새로 얌파일을 추가해도 상관은 없는데, 전혀 갈피가 안잡혀서 도움 요청드립니다.
사실 백본을 바꾸기보단 파이토치로 새로 짜보려했는데, 제가 그냥 학습에서 엔지니어링으로 옵션 건드는건 했어도, 아예 레이어 설계하거나 저장하도록 만들어본 적이 없어서 계속 헷갈리네요.. 지금은 프로젝트 코드 다 엎어버렸습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
Yolo 모델의 백본을 Resnet50으로 변경하는 작업은 레이어 구성과 관련된 파이토치 내부의 세부적인 작업을 필요로 합니다. 정확하게 백본을 변경하려면 기본적으로 PyTorch를 사용한 모델 정의 방법을 숙지하고 있어야 합니다. 예를 들어, 기존 YoloV9 모델의 구성 파일(yolov9.yaml)을 수정하여 백본 구조를 Resnet50으로 교체하거나, 새로운 .yaml
파일을 만들어 해당 구조를 직접 정의할 수 있습니다.
Yolo 모델 백본 교체 시 주요 단계는 다음과 같습니다:
1. 대상이 되는 모델의 아키텍처를 이해합니다. YoloV9의 경우 models.yolo.py
와 관련 구성 파일들에서 이를 파악할 수 있습니다.
2. PyTorch에서 Resnet50 모델을 불러옵니다(torchvision.models
을 활용할 수 있습니다).
3. YoloV9의 백본 부분을 Resnet50으로 교체합니다. 이 과정에서 입력 및 출력 레이어의 차원 조정이 필요할 수 있습니다.
4. 새로운 모델 구조로 .yaml
파일을 업데이트합니다. 모델 구성을 정의하는 경우, 커스텀 yaml
파일 내에서 Resnet50 백본을 명시해야 합니다.
5. 필요한 경우, 새로운 모델을 학습할 때 사용할 학습 스크립트(train.py
) 수정을 진행합니다.
6. 모델을 학습시킨 후 .pth
포맷으로 모델을 저장합니다. PyTorch의 torch.save(model.state_dict(), 'model_name.pth')
함수를 사용하여 모델의 가중치를 저장할 수 있습니다.
직접 레이어를 설계하거나 모델을 저장하는 데 어려움을 겪고 있다면, PyTorch에 대한 기본적인 자료 구조와 모델 정의 방법, 모델 저장 및 로딩에 대해 더 자세히 학습하는 것이 좋습니다. 실제로 모델 구조를 변경하는 작업은 코드 레벨에서 상당히 세밀한 조정을 필요로 하므로, 관련된 자료나 사례를 찾아보며 점진적으로 접근하는 것을 추천합니다.