mirror of https://github.com/open-mmlab/mmyolo.git
71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
_base_ = 'rtmdet_tiny_syncbn_fast_8xb32-300e_coco.py'
|
|
|
|
data_root = './data/cat/'
|
|
class_name = ('cat', )
|
|
num_classes = len(class_name)
|
|
metainfo = dict(classes=class_name, palette=[(20, 220, 60)])
|
|
|
|
num_epochs_stage2 = 5
|
|
|
|
max_epochs = 40
|
|
train_batch_size_per_gpu = 12
|
|
train_num_workers = 4
|
|
val_batch_size_per_gpu = 1
|
|
val_num_workers = 2
|
|
|
|
load_from = 'https://download.openmmlab.com/mmyolo/v0/rtmdet/rtmdet_tiny_syncbn_fast_8xb32-300e_coco/rtmdet_tiny_syncbn_fast_8xb32-300e_coco_20230102_140117-dbb1dc83.pth' # noqa
|
|
|
|
model = dict(
|
|
backbone=dict(frozen_stages=4),
|
|
bbox_head=dict(head_module=dict(num_classes=num_classes)),
|
|
train_cfg=dict(assigner=dict(num_classes=num_classes)))
|
|
|
|
train_dataloader = dict(
|
|
batch_size=train_batch_size_per_gpu,
|
|
num_workers=train_num_workers,
|
|
dataset=dict(
|
|
data_root=data_root,
|
|
metainfo=metainfo,
|
|
ann_file='annotations/trainval.json',
|
|
data_prefix=dict(img='images/')))
|
|
|
|
val_dataloader = dict(
|
|
batch_size=val_batch_size_per_gpu,
|
|
num_workers=val_num_workers,
|
|
dataset=dict(
|
|
metainfo=metainfo,
|
|
data_root=data_root,
|
|
ann_file='annotations/test.json',
|
|
data_prefix=dict(img='images/')))
|
|
|
|
test_dataloader = val_dataloader
|
|
|
|
param_scheduler = [
|
|
dict(
|
|
type='LinearLR',
|
|
start_factor=_base_.lr_start_factor,
|
|
by_epoch=False,
|
|
begin=0,
|
|
end=30),
|
|
dict(
|
|
# use cosine lr from 150 to 300 epoch
|
|
type='CosineAnnealingLR',
|
|
eta_min=_base_.base_lr * 0.05,
|
|
begin=max_epochs // 2,
|
|
end=max_epochs,
|
|
T_max=max_epochs // 2,
|
|
by_epoch=True,
|
|
convert_to_iter_based=True),
|
|
]
|
|
|
|
_base_.custom_hooks[1].switch_epoch = max_epochs - num_epochs_stage2
|
|
|
|
val_evaluator = dict(ann_file=data_root + 'annotations/test.json')
|
|
test_evaluator = val_evaluator
|
|
|
|
default_hooks = dict(
|
|
checkpoint=dict(interval=10, max_keep_ckpts=2, save_best='auto'),
|
|
logger=dict(type='LoggerHook', interval=5))
|
|
train_cfg = dict(max_epochs=max_epochs, val_interval=10)
|
|
# visualizer = dict(vis_backends = [dict(type='LocalVisBackend'), dict(type='WandbVisBackend')]) # noqa
|