sabl-retinanet_r50-gn_fpn_1x_coco.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. _base_ = [
  2. '../_base_/models/retinanet_r50_fpn.py',
  3. '../_base_/datasets/coco_detection.py',
  4. '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py'
  5. ]
  6. # model settings
  7. norm_cfg = dict(type='GN', num_groups=32, requires_grad=True)
  8. model = dict(
  9. bbox_head=dict(
  10. _delete_=True,
  11. type='SABLRetinaHead',
  12. num_classes=80,
  13. in_channels=256,
  14. stacked_convs=4,
  15. feat_channels=256,
  16. approx_anchor_generator=dict(
  17. type='AnchorGenerator',
  18. octave_base_scale=4,
  19. scales_per_octave=3,
  20. ratios=[0.5, 1.0, 2.0],
  21. strides=[8, 16, 32, 64, 128]),
  22. square_anchor_generator=dict(
  23. type='AnchorGenerator',
  24. ratios=[1.0],
  25. scales=[4],
  26. strides=[8, 16, 32, 64, 128]),
  27. norm_cfg=norm_cfg,
  28. bbox_coder=dict(
  29. type='BucketingBBoxCoder', num_buckets=14, scale_factor=3.0),
  30. loss_cls=dict(
  31. type='FocalLoss',
  32. use_sigmoid=True,
  33. gamma=2.0,
  34. alpha=0.25,
  35. loss_weight=1.0),
  36. loss_bbox_cls=dict(
  37. type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.5),
  38. loss_bbox_reg=dict(
  39. type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.5)),
  40. # training and testing settings
  41. train_cfg=dict(
  42. assigner=dict(
  43. type='ApproxMaxIoUAssigner',
  44. pos_iou_thr=0.5,
  45. neg_iou_thr=0.4,
  46. min_pos_iou=0.0,
  47. ignore_iof_thr=-1),
  48. allowed_border=-1,
  49. pos_weight=-1,
  50. debug=False))
  51. # optimizer
  52. optim_wrapper = dict(
  53. optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001))