mask2former_swin-s-p4-w7-224_8xb2-lsj-50e_coco-panoptic.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. _base_ = ['./mask2former_swin-t-p4-w7-224_8xb2-lsj-50e_coco-panoptic.py']
  2. pretrained = 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_small_patch4_window7_224.pth' # noqa
  3. depths = [2, 2, 18, 2]
  4. model = dict(
  5. backbone=dict(
  6. depths=depths, init_cfg=dict(type='Pretrained',
  7. checkpoint=pretrained)))
  8. # set all layers in backbone to lr_mult=0.1
  9. # set all norm layers, position_embeding,
  10. # query_embeding, level_embeding to decay_multi=0.0
  11. backbone_norm_multi = dict(lr_mult=0.1, decay_mult=0.0)
  12. backbone_embed_multi = dict(lr_mult=0.1, decay_mult=0.0)
  13. embed_multi = dict(lr_mult=1.0, decay_mult=0.0)
  14. custom_keys = {
  15. 'backbone': dict(lr_mult=0.1, decay_mult=1.0),
  16. 'backbone.patch_embed.norm': backbone_norm_multi,
  17. 'backbone.norm': backbone_norm_multi,
  18. 'absolute_pos_embed': backbone_embed_multi,
  19. 'relative_position_bias_table': backbone_embed_multi,
  20. 'query_embed': embed_multi,
  21. 'query_feat': embed_multi,
  22. 'level_embed': embed_multi
  23. }
  24. custom_keys.update({
  25. f'backbone.stages.{stage_id}.blocks.{block_id}.norm': backbone_norm_multi
  26. for stage_id, num_blocks in enumerate(depths)
  27. for block_id in range(num_blocks)
  28. })
  29. custom_keys.update({
  30. f'backbone.stages.{stage_id}.downsample.norm': backbone_norm_multi
  31. for stage_id in range(len(depths) - 1)
  32. })
  33. # optimizer
  34. optim_wrapper = dict(
  35. paramwise_cfg=dict(custom_keys=custom_keys, norm_decay_mult=0.0))