반응형
Customize Models
- 모델은 5가지 타입으로 구성됨
- backbone: FCN network로 featurer map들을 추출함
- neck: backbone과 head의 사이에 있는 구성요소
- head: 특정한 task를 위한 구성요소
- roi extractor: feature map들에서 RoI 특징을 뽑아내는 부분
- loss: loss를 계산하기 위한 head의 구성요소
새로운 구성요소 추가하기
Backbone 추가하기
1. 새로운 backbone 생성: mmdet/models/backbones/모델명.py
import torch.nn as nn
from mmdet.registry import MODELS
@MODELS.register_module()
class 모델명(nn.Module):
def __init__(self, arg1, arg2):
pass
def forward(self, x):
pass
2. 모듈 불러오기
# mmdet/models/backbones/__init__.py에 추가
from .모델명 import 모델명
# 다른 방식
custom_imports = dict(
imports=['mmdet.models.backbones.모델명'],
allow_failed_imports=False)
3. config file에서 backbone 사용
model = dict(
...
backbone = dict(
type="모델명",
arg1=xxx,
arg2=xxx),
...
Neck 추가하기
1. 새로운 neck 정의하기: mmdet/models/necks/neck이름.py
import torch.nn as nn
from mmdet.registry import MODELS
@MODELS.register_module()
class neck이름(nn.Module):
def __init__(self, in_channels, out_channels,
num_outs, start_level=0, end_level=-1,
add_extra_convs=False):
pass
def forward(self, inputs):
pass
2. 모듈 불러오기
# mmdet/models/necks/__init__.py
from .neck이름 import neck이름
# 다른 방식
cutsom_imports = dict(
imports=['mmdet.models.necks.neck이름],
allow_failed_imports=False)
3. config file 에서 neck사용
neck = dict(
type="neck이름",
in_channels=[256, 512, 1024, 2048],
out_channels=256,
num_outs=5)
Head 추가하기
1. 새 head 생성하기: mmdet/models/roi_heads/bbox_heads/헤드명.py
- 3개의 function 구현 필요
ㅇ
Loss 추가하기
1. 새로운 loss 생성: mmdet/models/losses/my_loss.py
import torch
import torch.nn as nn
from mmdet.registry. import MODELS
from .utils import weighted_loss
@weighted_loss
def my_loss(pred, target):
asser pred.size() == target.size() and target.numel() > 0
loss = torch.abs(pred - target)
return loss
@MODELS.register_module()
class MyLoss(nn.Module):
def __init__(self, reduction="mean", loss_weight=1.0):
super(MyLoss, self).__init__()
self.reduction = reduction
self.loss_weight = loss_weight
반응형
'OpenMMLab(미공개) > MMDetection' 카테고리의 다른 글
[MMDetection] Train & Test - Configs (0) | 2024.01.13 |
---|---|
[MMDetection] 기본 개념 (0) | 2024.01.13 |
[MMDetection] 환경설정 (0) | 2024.01.13 |
[MMDetection] 개요 (0) | 2024.01.13 |