Spaces:
Runtime error
Runtime error
snnetv2-semantic-segmentation
/
configs
/maskformer
/maskformer_swin-s_upernet_8xb2-160k_ade20k-512x512.py
| checkpoint_file = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/swin/swin_small_patch4_window7_224_20220317-7ba6d6dd.pth' # noqa | |
| _base_ = './maskformer_r50-d32_8xb2-160k_ade20k-512x512.py' | |
| backbone_norm_cfg = dict(type='LN', requires_grad=True) | |
| depths = [2, 2, 18, 2] | |
| model = dict( | |
| backbone=dict( | |
| _delete_=True, | |
| type='SwinTransformer', | |
| pretrain_img_size=224, | |
| embed_dims=96, | |
| patch_size=4, | |
| window_size=7, | |
| mlp_ratio=4, | |
| depths=depths, | |
| num_heads=[3, 6, 12, 24], | |
| strides=(4, 2, 2, 2), | |
| out_indices=(0, 1, 2, 3), | |
| qkv_bias=True, | |
| qk_scale=None, | |
| patch_norm=True, | |
| drop_rate=0., | |
| attn_drop_rate=0., | |
| drop_path_rate=0.3, | |
| use_abs_pos_embed=False, | |
| act_cfg=dict(type='GELU'), | |
| norm_cfg=backbone_norm_cfg, | |
| init_cfg=dict(type='Pretrained', checkpoint=checkpoint_file)), | |
| decode_head=dict( | |
| type='MaskFormerHead', | |
| in_channels=[96, 192, 384, | |
| 768], # input channels of pixel_decoder modules | |
| )) | |
| # optimizer | |
| optimizer = dict( | |
| type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01) | |
| # set all layers in backbone to lr_mult=1.0 | |
| # set all norm layers, position_embeding, | |
| # query_embeding to decay_multi=0.0 | |
| backbone_norm_multi = dict(lr_mult=1.0, decay_mult=0.0) | |
| backbone_embed_multi = dict(lr_mult=1.0, decay_mult=0.0) | |
| embed_multi = dict(decay_mult=0.0) | |
| custom_keys = { | |
| 'backbone': dict(lr_mult=1.0), | |
| 'backbone.patch_embed.norm': backbone_norm_multi, | |
| 'backbone.norm': backbone_norm_multi, | |
| 'relative_position_bias_table': backbone_embed_multi, | |
| 'query_embed': embed_multi, | |
| } | |
| custom_keys.update({ | |
| f'backbone.stages.{stage_id}.blocks.{block_id}.norm': backbone_norm_multi | |
| for stage_id, num_blocks in enumerate(depths) | |
| for block_id in range(num_blocks) | |
| }) | |
| custom_keys.update({ | |
| f'backbone.stages.{stage_id}.downsample.norm': backbone_norm_multi | |
| for stage_id in range(len(depths) - 1) | |
| }) | |
| # optimizer | |
| optim_wrapper = dict( | |
| _delete_=True, | |
| type='OptimWrapper', | |
| optimizer=optimizer, | |
| clip_grad=dict(max_norm=0.01, norm_type=2), | |
| paramwise_cfg=dict(custom_keys=custom_keys)) | |
| # learning policy | |
| param_scheduler = [ | |
| dict( | |
| type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1500), | |
| dict( | |
| type='PolyLR', | |
| eta_min=0.0, | |
| power=1.0, | |
| begin=1500, | |
| end=160000, | |
| by_epoch=False, | |
| ) | |
| ] | |