【MMdetection改进】换遍MMDET主干网络之SwinTransformer-Tiny(基于MMdetection)
OpenMMLab 2.0 体系中 MMYOLO、MMDetection、MMClassification、MMSelfsup 中的模型注册表都继承自 MMEngine 中的根注册表,允许这些 OpenMMLab 开源库直接使用彼此已经实现的模块。 因此用户可以在MMYOLO 中使用来自 MMDetection、MMClassification、MMSelfsup 的主干网络,而无需重新实现。
Swin Transformer做主干的 Faster RCNN 目标检测网络(mmdetection)
1. 在configs/swin 目录下新建文件:faster_rcnn_swin_t-p4-w7_fpn_1x_coco.py
文件内容如下:
**注意:**训练的epoch在这个文件中改,大家根据需要修改。
_base_ = ['../_base_/models/faster_rcnn_r50_fpn.py','../_base_/datasets/coco_instance.py','../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py'
]
pretrained = 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth' # noqa
model = dict(#type='MaskRCNN',type='FastRCNN',backbone=dict(_delete_=True,type='SwinTransformer',embed_dims=96,depths=[2, 2, 6, 2],num_heads=[3, 6, 12, 24],window_size=7,mlp_ratio=4,qkv_bias=True,qk_scale=None,drop_rate=0.,attn_drop_rate=0.,drop_path_rate=0.2,patch_norm=True,out_indices=(0, 1, 2, 3),with_cp=False,convert_weights=True,init_cfg=dict(type='Pretrained', checkpoint=pretrained)),neck=dict(in_channels=[96, 192, 384, 768]))optimizer = dict(_delete_=True,type='AdamW',lr=0.0001,betas=(0.9, 0.999),weight_decay=0.05,paramwise_cfg=dict(custom_keys={'absolute_pos_embed': dict(decay_mult=0.),'relative_position_bias_table': dict(decay_mult=0.),'norm': dict(decay_mult=0.)}))
lr_config = dict(warmup_iters=1000, step=[8, 11])
runner = dict(max_epochs=12)
Swin Transformer做主干的Cascade R-CNN 目标检测网络(mmdetection)
1. 在configs/swin 目录下新建文件:cascade_rcnn_swin_t-p4-w7_fpn_1x_coco.py
文件内容如下:
**注意:**训练的epoch在这个文件中改,大家根据需要修改。
_base_ = ['../_base_/models/cascade_rcnn_r50_fpn.py','../_base_/datasets/coco_detection.py','../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py'
]
pretrained = 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth' # noqa
model = dict(#type='MaskRCNN',type='CascadeRCNN',backbone=dict(_delete_=True,type='SwinTransformer',embed_dims=96,depths=[2, 2, 6, 2],num_heads=[3, 6, 12, 24],window_size=7,mlp_ratio=4,qkv_bias=True,qk_scale=None,drop_rate=0.,attn_drop_rate=0.,drop_path_rate=0.2,patch_norm=True,out_indices=(0, 1, 2, 3),with_cp=False,convert_weights=True,init_cfg=dict(type='Pretrained', checkpoint=pretrained)),neck=dict(in_channels=[96, 192, 384, 768]))optimizer = dict(_delete_=True,type='AdamW',lr=0.0001,betas=(0.9, 0.999),weight_decay=0.05,paramwise_cfg=dict(custom_keys={'absolute_pos_embed': dict(decay_mult=0.),'relative_position_bias_table': dict(decay_mult=0.),'norm': dict(decay_mult=0.)}))
lr_config = dict(warmup_iters=1000, step=[8, 11])
runner = dict(max_epochs=12)