r50_fpn_rpn_1x.py 2.85 KB
Newer Older
pangjm's avatar
pangjm committed
1
2
# model settings
model = dict(
Kai Chen's avatar
Kai Chen committed
3
4
    type='RPN',
    pretrained='modelzoo://resnet50',
pangjm's avatar
pangjm committed
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    backbone=dict(
        type='resnet',
        depth=50,
        num_stages=4,
        out_indices=(0, 1, 2, 3),
        frozen_stages=1,
        style='fb'),
    neck=dict(
        type='FPN',
        in_channels=[256, 512, 1024, 2048],
        out_channels=256,
        num_outs=5),
    rpn_head=dict(
        type='RPNHead',
        in_channels=256,
        feat_channels=256,
        anchor_scales=[8],
        anchor_ratios=[0.5, 1.0, 2.0],
        anchor_strides=[4, 8, 16, 32, 64],
        target_means=[.0, .0, .0, .0],
        target_stds=[1.0, 1.0, 1.0, 1.0],
        use_sigmoid_cls=True))
Kai Chen's avatar
Kai Chen committed
27
28
29
# model training and testing settings
train_cfg = dict(
    rpn=dict(
pangjm's avatar
pangjm committed
30
31
32
33
34
35
36
37
38
39
40
        pos_fraction=0.5,
        pos_balance_sampling=False,
        neg_pos_ub=256,
        allowed_border=0,
        anchor_batch_size=256,
        pos_iou_thr=0.7,
        neg_iou_thr=0.3,
        neg_balance_thr=0,
        min_pos_iou=1e-3,
        pos_weight=-1,
        smoothl1_beta=1 / 9.0,
Kai Chen's avatar
Kai Chen committed
41
42
43
        debug=False))
test_cfg = dict(
    rpn=dict(
pangjm's avatar
pangjm committed
44
45
46
47
48
49
50
        nms_across_levels=False,
        nms_pre=2000,
        nms_post=2000,
        max_num=2000,
        nms_thr=0.7,
        min_bbox_size=0))
# dataset settings
Kai Chen's avatar
Kai Chen committed
51
52
dataset_type = 'CocoDataset'
data_root = '../data/coco/'
pangjm's avatar
pangjm committed
53
54
img_norm_cfg = dict(
    mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
Kai Chen's avatar
Kai Chen committed
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
data = dict(
    imgs_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/',
        img_scale=(1333, 800),
        img_norm_cfg=img_norm_cfg,
        size_divisor=32,
        flip_ratio=0.5,
        with_mask=False,
        with_crowd=False,
        with_label=False,
        test_mode=False),
    test=dict(
        type=dataset_type,
        ann_file=data_root + 'annotations/instances_val2017.json',
        img_prefix=data_root + 'val2017/',
        img_scale=(1333, 800),
        flip_ratio=0,
        img_norm_cfg=img_norm_cfg,
        size_divisor=32,
        with_mask=False,
        with_label=False,
        test_mode=True))
pangjm's avatar
pangjm committed
81
82
# optimizer
optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001)
Kai Chen's avatar
Kai Chen committed
83
84
85
# runner configs
optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
lr_config = dict(
pangjm's avatar
pangjm committed
86
87
88
    policy='step',
    warmup='linear',
    warmup_iters=500,
Kai Chen's avatar
Kai Chen committed
89
    warmup_ratio=1.0 / 3,
pangjm's avatar
pangjm committed
90
91
92
93
94
95
96
    step=[8, 11])
checkpoint_config = dict(interval=1)
# yapf:disable
log_config = dict(
    interval=50,
    hooks=[
        dict(type='TextLoggerHook'),
Kai Chen's avatar
Kai Chen committed
97
        # dict(type='TensorboardLoggerHook', log_dir=work_dir + '/log')
pangjm's avatar
pangjm committed
98
99
    ])
# yapf:enable
Kai Chen's avatar
Kai Chen committed
100
101
# runtime settings
total_epochs = 12
102
dist_params = dict(backend='gloo')
Kai Chen's avatar
Kai Chen committed
103
104
log_level = 'INFO'
work_dir = './work_dirs/fpn_rpn_r50_1x'
pangjm's avatar
pangjm committed
105
load_from = None
Kai Chen's avatar
Kai Chen committed
106
resume_from = None 
pangjm's avatar
pangjm committed
107
workflow = [('train', 1)]