Spaces:
Build error
Build error
_base_ = '../_base_/default_runtime.py' | |
# model settings | |
model = dict( | |
type='RetinaNet', | |
pretrained='open-mmlab://detectron2/resnet101_caffe', | |
backbone=dict( | |
type='ResNet', | |
depth=101, | |
num_stages=4, | |
out_indices=(0, 1, 2, 3), | |
frozen_stages=1, | |
norm_cfg=dict(type='BN', requires_grad=False), | |
norm_eval=True, | |
style='caffe'), | |
neck=dict( | |
type='FPN', | |
in_channels=[256, 512, 1024, 2048], | |
out_channels=256, | |
start_level=1, | |
add_extra_convs=True, | |
num_outs=5), | |
bbox_head=dict( | |
type='GARetinaHead', | |
num_classes=80, | |
in_channels=256, | |
stacked_convs=4, | |
feat_channels=256, | |
approx_anchor_generator=dict( | |
type='AnchorGenerator', | |
octave_base_scale=4, | |
scales_per_octave=3, | |
ratios=[0.5, 1.0, 2.0], | |
strides=[8, 16, 32, 64, 128]), | |
square_anchor_generator=dict( | |
type='AnchorGenerator', | |
ratios=[1.0], | |
scales=[4], | |
strides=[8, 16, 32, 64, 128]), | |
anchor_coder=dict( | |
type='DeltaXYWHBBoxCoder', | |
target_means=[.0, .0, .0, .0], | |
target_stds=[1.0, 1.0, 1.0, 1.0]), | |
bbox_coder=dict( | |
type='DeltaXYWHBBoxCoder', | |
target_means=[.0, .0, .0, .0], | |
target_stds=[1.0, 1.0, 1.0, 1.0]), | |
loc_filter_thr=0.01, | |
loss_loc=dict( | |
type='FocalLoss', | |
use_sigmoid=True, | |
gamma=2.0, | |
alpha=0.25, | |
loss_weight=1.0), | |
loss_shape=dict(type='BoundedIoULoss', beta=0.2, loss_weight=1.0), | |
loss_cls=dict( | |
type='FocalLoss', | |
use_sigmoid=True, | |
gamma=2.0, | |
alpha=0.25, | |
loss_weight=1.0), | |
loss_bbox=dict(type='SmoothL1Loss', beta=0.04, loss_weight=1.0))) | |
# training and testing settings | |
train_cfg = dict( | |
ga_assigner=dict( | |
type='ApproxMaxIoUAssigner', | |
pos_iou_thr=0.5, | |
neg_iou_thr=0.4, | |
min_pos_iou=0.4, | |
ignore_iof_thr=-1), | |
ga_sampler=dict( | |
type='RandomSampler', | |
num=256, | |
pos_fraction=0.5, | |
neg_pos_ub=-1, | |
add_gt_as_proposals=False), | |
assigner=dict( | |
type='MaxIoUAssigner', | |
pos_iou_thr=0.5, | |
neg_iou_thr=0.5, | |
min_pos_iou=0.0, | |
ignore_iof_thr=-1), | |
allowed_border=-1, | |
pos_weight=-1, | |
center_ratio=0.2, | |
ignore_ratio=0.5, | |
debug=False) | |
test_cfg = dict( | |
nms_pre=1000, | |
min_bbox_size=0, | |
score_thr=0.05, | |
nms=dict(type='nms', iou_threshold=0.5), | |
max_per_img=100) | |
# dataset settings | |
dataset_type = 'CocoDataset' | |
data_root = 'data/coco/' | |
img_norm_cfg = dict( | |
mean=[103.530, 116.280, 123.675], std=[1.0, 1.0, 1.0], to_rgb=False) | |
train_pipeline = [ | |
dict(type='LoadImageFromFile'), | |
dict(type='LoadAnnotations', with_bbox=True), | |
dict( | |
type='Resize', | |
img_scale=[(1333, 480), (1333, 960)], | |
keep_ratio=True, | |
multiscale_mode='range'), | |
dict(type='RandomFlip', flip_ratio=0.5), | |
dict(type='Normalize', **img_norm_cfg), | |
dict(type='Pad', size_divisor=32), | |
dict(type='DefaultFormatBundle'), | |
dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']), | |
] | |
test_pipeline = [ | |
dict(type='LoadImageFromFile'), | |
dict( | |
type='MultiScaleFlipAug', | |
img_scale=(1333, 800), | |
flip=False, | |
transforms=[ | |
dict(type='Resize', keep_ratio=True), | |
dict(type='RandomFlip'), | |
dict(type='Normalize', **img_norm_cfg), | |
dict(type='Pad', size_divisor=32), | |
dict(type='ImageToTensor', keys=['img']), | |
dict(type='Collect', keys=['img']), | |
]) | |
] | |
data = dict( | |
samples_per_gpu=2, | |
workers_per_gpu=2, | |
train=dict( | |
type=dataset_type, | |
ann_file=data_root + 'annotations/instances_train2017.json', | |
img_prefix=data_root + 'train2017/', | |
pipeline=train_pipeline), | |
val=dict( | |
type=dataset_type, | |
ann_file=data_root + 'annotations/instances_val2017.json', | |
img_prefix=data_root + 'val2017/', | |
pipeline=test_pipeline), | |
test=dict( | |
type=dataset_type, | |
ann_file=data_root + 'annotations/instances_val2017.json', | |
img_prefix=data_root + 'val2017/', | |
pipeline=test_pipeline)) | |
evaluation = dict(interval=1, metric='bbox') | |
# optimizer | |
optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001) | |
optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2)) | |
# learning policy | |
lr_config = dict( | |
policy='step', | |
warmup='linear', | |
warmup_iters=500, | |
warmup_ratio=1.0 / 3, | |
step=[16, 22]) | |
checkpoint_config = dict(interval=1) | |
# yapf:disable | |
log_config = dict( | |
interval=50, | |
hooks=[ | |
dict(type='TextLoggerHook'), | |
# dict(type='TensorboardLoggerHook') | |
]) | |
# yapf:enable | |
# runtime settings | |
runner = dict(type='EpochBasedRunner', max_epochs=24) | |