Spaces:
Running
on
T4
Running
on
T4
_base_ = './rtmdet_l_syncbn_fast_8xb32-300e_coco.py' | |
checkpoint = 'https://download.openmmlab.com/mmdetection/v3.0/rtmdet/cspnext_rsb_pretrain/cspnext-s_imagenet_600e.pth' # noqa | |
# ========================modified parameters====================== | |
deepen_factor = 0.33 | |
widen_factor = 0.5 | |
img_scale = _base_.img_scale | |
# ratio range for random resize | |
random_resize_ratio_range = (0.5, 2.0) | |
# Number of cached images in mosaic | |
mosaic_max_cached_images = 40 | |
# Number of cached images in mixup | |
mixup_max_cached_images = 20 | |
# =======================Unmodified in most cases================== | |
model = dict( | |
backbone=dict( | |
deepen_factor=deepen_factor, | |
widen_factor=widen_factor, | |
# Since the checkpoint includes CUDA:0 data, | |
# it must be forced to set map_location. | |
# Once checkpoint is fixed, it can be removed. | |
init_cfg=dict( | |
type='Pretrained', | |
prefix='backbone.', | |
checkpoint=checkpoint, | |
map_location='cpu')), | |
neck=dict( | |
deepen_factor=deepen_factor, | |
widen_factor=widen_factor, | |
), | |
bbox_head=dict(head_module=dict(widen_factor=widen_factor))) | |
train_pipeline = [ | |
dict(type='LoadImageFromFile', backend_args=_base_.backend_args), | |
dict(type='LoadAnnotations', with_bbox=True), | |
dict( | |
type='Mosaic', | |
img_scale=img_scale, | |
use_cached=True, | |
max_cached_images=mosaic_max_cached_images, | |
pad_val=114.0), | |
dict( | |
type='mmdet.RandomResize', | |
# img_scale is (width, height) | |
scale=(img_scale[0] * 2, img_scale[1] * 2), | |
ratio_range=random_resize_ratio_range, # note | |
resize_type='mmdet.Resize', | |
keep_ratio=True), | |
dict(type='mmdet.RandomCrop', crop_size=img_scale), | |
dict(type='mmdet.YOLOXHSVRandomAug'), | |
dict(type='mmdet.RandomFlip', prob=0.5), | |
dict(type='mmdet.Pad', size=img_scale, pad_val=dict(img=(114, 114, 114))), | |
dict( | |
type='YOLOv5MixUp', | |
use_cached=True, | |
max_cached_images=mixup_max_cached_images), | |
dict(type='mmdet.PackDetInputs') | |
] | |
train_pipeline_stage2 = [ | |
dict(type='LoadImageFromFile', backend_args=_base_.backend_args), | |
dict(type='LoadAnnotations', with_bbox=True), | |
dict( | |
type='mmdet.RandomResize', | |
scale=img_scale, | |
ratio_range=random_resize_ratio_range, # note | |
resize_type='mmdet.Resize', | |
keep_ratio=True), | |
dict(type='mmdet.RandomCrop', crop_size=img_scale), | |
dict(type='mmdet.YOLOXHSVRandomAug'), | |
dict(type='mmdet.RandomFlip', prob=0.5), | |
dict(type='mmdet.Pad', size=img_scale, pad_val=dict(img=(114, 114, 114))), | |
dict(type='mmdet.PackDetInputs') | |
] | |
train_dataloader = dict(dataset=dict(pipeline=train_pipeline)) | |
custom_hooks = [ | |
dict( | |
type='EMAHook', | |
ema_type='ExpMomentumEMA', | |
momentum=0.0002, | |
update_buffers=True, | |
strict_load=False, | |
priority=49), | |
dict( | |
type='mmdet.PipelineSwitchHook', | |
switch_epoch=_base_.max_epochs - _base_.num_epochs_stage2, | |
switch_pipeline=train_pipeline_stage2) | |
] | |