You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

queryinst_r50_fpn_1x_coco.py 5.0 kB

2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. _base_ = [
  2. '../_base_/datasets/coco_instance.py',
  3. '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py'
  4. ]
  5. num_stages = 6
  6. num_proposals = 100
  7. model = dict(
  8. type='QueryInst',
  9. backbone=dict(
  10. type='ResNet',
  11. depth=50,
  12. num_stages=4,
  13. out_indices=(0, 1, 2, 3),
  14. frozen_stages=1,
  15. norm_cfg=dict(type='BN', requires_grad=True),
  16. norm_eval=True,
  17. style='pytorch',
  18. init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
  19. neck=dict(
  20. type='FPN',
  21. in_channels=[256, 512, 1024, 2048],
  22. out_channels=256,
  23. start_level=0,
  24. add_extra_convs='on_input',
  25. num_outs=4),
  26. rpn_head=dict(
  27. type='EmbeddingRPNHead',
  28. num_proposals=num_proposals,
  29. proposal_feature_channel=256),
  30. roi_head=dict(
  31. type='SparseRoIHead',
  32. num_stages=num_stages,
  33. stage_loss_weights=[1] * num_stages,
  34. proposal_feature_channel=256,
  35. bbox_roi_extractor=dict(
  36. type='SingleRoIExtractor',
  37. roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=2),
  38. out_channels=256,
  39. featmap_strides=[4, 8, 16, 32]),
  40. mask_roi_extractor=dict(
  41. type='SingleRoIExtractor',
  42. roi_layer=dict(type='RoIAlign', output_size=14, sampling_ratio=2),
  43. out_channels=256,
  44. featmap_strides=[4, 8, 16, 32]),
  45. bbox_head=[
  46. dict(
  47. type='DIIHead',
  48. num_classes=80,
  49. num_ffn_fcs=2,
  50. num_heads=8,
  51. num_cls_fcs=1,
  52. num_reg_fcs=3,
  53. feedforward_channels=2048,
  54. in_channels=256,
  55. dropout=0.0,
  56. ffn_act_cfg=dict(type='ReLU', inplace=True),
  57. dynamic_conv_cfg=dict(
  58. type='DynamicConv',
  59. in_channels=256,
  60. feat_channels=64,
  61. out_channels=256,
  62. input_feat_shape=7,
  63. act_cfg=dict(type='ReLU', inplace=True),
  64. norm_cfg=dict(type='LN')),
  65. loss_bbox=dict(type='L1Loss', loss_weight=5.0),
  66. loss_iou=dict(type='GIoULoss', loss_weight=2.0),
  67. loss_cls=dict(
  68. type='FocalLoss',
  69. use_sigmoid=True,
  70. gamma=2.0,
  71. alpha=0.25,
  72. loss_weight=2.0),
  73. bbox_coder=dict(
  74. type='DeltaXYWHBBoxCoder',
  75. clip_border=False,
  76. target_means=[0., 0., 0., 0.],
  77. target_stds=[0.5, 0.5, 1., 1.])) for _ in range(num_stages)
  78. ],
  79. mask_head=[
  80. dict(
  81. type='DynamicMaskHead',
  82. dynamic_conv_cfg=dict(
  83. type='DynamicConv',
  84. in_channels=256,
  85. feat_channels=64,
  86. out_channels=256,
  87. input_feat_shape=14,
  88. with_proj=False,
  89. act_cfg=dict(type='ReLU', inplace=True),
  90. norm_cfg=dict(type='LN')),
  91. num_convs=4,
  92. num_classes=80,
  93. roi_feat_size=14,
  94. in_channels=256,
  95. conv_kernel_size=3,
  96. conv_out_channels=256,
  97. class_agnostic=False,
  98. norm_cfg=dict(type='BN'),
  99. upsample_cfg=dict(type='deconv', scale_factor=2),
  100. loss_mask=dict(
  101. type='DiceLoss',
  102. loss_weight=8.0,
  103. use_sigmoid=True,
  104. activate=False,
  105. eps=1e-5)) for _ in range(num_stages)
  106. ]),
  107. # training and testing settings
  108. train_cfg=dict(
  109. rpn=None,
  110. rcnn=[
  111. dict(
  112. assigner=dict(
  113. type='HungarianAssigner',
  114. cls_cost=dict(type='FocalLossCost', weight=2.0),
  115. reg_cost=dict(type='BBoxL1Cost', weight=5.0),
  116. iou_cost=dict(type='IoUCost', iou_mode='giou',
  117. weight=2.0)),
  118. sampler=dict(type='PseudoSampler'),
  119. pos_weight=1,
  120. mask_size=28,
  121. ) for _ in range(num_stages)
  122. ]),
  123. test_cfg=dict(
  124. rpn=None, rcnn=dict(max_per_img=num_proposals, mask_thr_binary=0.5)))
  125. # optimizer
  126. optimizer = dict(
  127. _delete_=True,
  128. type='AdamW',
  129. lr=0.0001,
  130. weight_decay=0.0001,
  131. paramwise_cfg=dict(
  132. custom_keys={'backbone': dict(lr_mult=0.1, decay_mult=1.0)}))
  133. optimizer_config = dict(
  134. _delete_=True, grad_clip=dict(max_norm=0.1, norm_type=2))
  135. # learning policy
  136. lr_config = dict(policy='step', step=[8, 11], warmup_iters=1000)
  137. runner = dict(type='EpochBasedRunner', max_epochs=12)

No Description

Contributors (2)