├── .idea
├── MobileMamba.iml
├── deployment.xml
├── inspectionProfiles
│ └── profiles_settings.xml
├── misc.xml
├── vcs.xml
└── workspace.xml
├── LICENSE
├── README.md
├── assets
├── comparewithmamba.png
├── logo_512.png
├── mobilemamba.png
├── mobilemamba_logo.png
└── motivation.png
├── configs
├── .DS_Store
├── __init__.py
├── cls_big_21k.py
└── mobilemamba
│ ├── mobilemamba_b1.py
│ ├── mobilemamba_b1s.py
│ ├── mobilemamba_b2.py
│ ├── mobilemamba_b2s.py
│ ├── mobilemamba_b4.py
│ ├── mobilemamba_b4s.py
│ ├── mobilemamba_s6.py
│ ├── mobilemamba_s6s.py
│ ├── mobilemamba_t2.py
│ ├── mobilemamba_t2s.py
│ ├── mobilemamba_t4.py
│ └── mobilemamba_t4s.py
├── data
├── .DS_Store
├── CLS_dataset.py
├── __init__.py
├── lmdb_dataset.py
├── map22kto1k.txt
├── prepare_dataset.py
├── transforms.py
└── utils.py
├── downstream
├── __init__.py
├── det
│ ├── .DS_Store
│ ├── __init__.py
│ ├── backbones
│ │ ├── __init__.py
│ │ ├── basic_modules.py
│ │ ├── efficientvit_fpn.py
│ │ ├── lib_mamba
│ │ │ ├── __init__.py
│ │ │ ├── csm_triton.py
│ │ │ ├── csm_tritonk2.py
│ │ │ ├── csms6s.py
│ │ │ ├── kernels
│ │ │ │ └── selective_scan
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── csrc
│ │ │ │ │ └── selective_scan
│ │ │ │ │ │ ├── cub_extra.cuh
│ │ │ │ │ │ ├── cus
│ │ │ │ │ │ ├── selective_scan.cpp
│ │ │ │ │ │ ├── selective_scan_bwd_kernel.cuh
│ │ │ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ │ │ └── selective_scan_fwd_kernel.cuh
│ │ │ │ │ │ ├── cusndstate
│ │ │ │ │ │ ├── selective_scan_bwd_kernel_ndstate.cuh
│ │ │ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ │ │ ├── selective_scan_fwd_kernel_ndstate.cuh
│ │ │ │ │ │ ├── selective_scan_ndstate.cpp
│ │ │ │ │ │ └── selective_scan_ndstate.h
│ │ │ │ │ │ ├── cusnrow
│ │ │ │ │ │ ├── selective_scan_bwd_kernel_nrow.cuh
│ │ │ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ │ │ ├── selective_scan_core_bwd2.cu
│ │ │ │ │ │ ├── selective_scan_core_bwd3.cu
│ │ │ │ │ │ ├── selective_scan_core_bwd4.cu
│ │ │ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ │ │ ├── selective_scan_core_fwd2.cu
│ │ │ │ │ │ ├── selective_scan_core_fwd3.cu
│ │ │ │ │ │ ├── selective_scan_core_fwd4.cu
│ │ │ │ │ │ ├── selective_scan_fwd_kernel_nrow.cuh
│ │ │ │ │ │ └── selective_scan_nrow.cpp
│ │ │ │ │ │ ├── cusoflex
│ │ │ │ │ │ ├── selective_scan_bwd_kernel_oflex.cuh
│ │ │ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ │ │ ├── selective_scan_fwd_kernel_oflex.cuh
│ │ │ │ │ │ └── selective_scan_oflex.cpp
│ │ │ │ │ │ ├── reverse_scan.cuh
│ │ │ │ │ │ ├── selective_scan.h
│ │ │ │ │ │ ├── selective_scan_common.h
│ │ │ │ │ │ ├── static_switch.h
│ │ │ │ │ │ └── uninitialized_copy.cuh
│ │ │ │ │ ├── setup.py
│ │ │ │ │ ├── test_selective_scan.py
│ │ │ │ │ ├── test_selective_scan_easy.py
│ │ │ │ │ └── test_selective_scan_speed.py
│ │ │ ├── vmamba.py
│ │ │ └── vmambanew.py
│ │ └── mobilemamba.py
│ ├── configs
│ │ ├── .DS_Store
│ │ ├── __init__.py
│ │ ├── _base_
│ │ │ ├── __init__.py
│ │ │ ├── datasets
│ │ │ │ ├── __init__.py
│ │ │ │ ├── ade20k_instance.py
│ │ │ │ ├── ade20k_panoptic.py
│ │ │ │ ├── ade20k_semantic.py
│ │ │ │ ├── cityscapes_detection.py
│ │ │ │ ├── cityscapes_instance.py
│ │ │ │ ├── coco_caption.py
│ │ │ │ ├── coco_detection.py
│ │ │ │ ├── coco_instance.py
│ │ │ │ ├── coco_instance_semantic.py
│ │ │ │ ├── coco_panoptic.py
│ │ │ │ ├── coco_semantic.py
│ │ │ │ ├── deepfashion.py
│ │ │ │ ├── dsdl.py
│ │ │ │ ├── isaid_instance.py
│ │ │ │ ├── lvis_v0.5_instance.py
│ │ │ │ ├── lvis_v1_instance.py
│ │ │ │ ├── mot_challenge.py
│ │ │ │ ├── mot_challenge_det.py
│ │ │ │ ├── mot_challenge_reid.py
│ │ │ │ ├── objects365v1_detection.py
│ │ │ │ ├── objects365v2_detection.py
│ │ │ │ ├── openimages_detection.py
│ │ │ │ ├── refcoco+.py
│ │ │ │ ├── refcoco.py
│ │ │ │ ├── refcocog.py
│ │ │ │ ├── semi_coco_detection.py
│ │ │ │ ├── v3det.py
│ │ │ │ ├── voc0712.py
│ │ │ │ ├── wider_face.py
│ │ │ │ └── youtube_vis.py
│ │ │ ├── default_runtime.py
│ │ │ ├── models
│ │ │ │ ├── __init__.py
│ │ │ │ ├── cascade-mask-rcnn_r50_fpn.py
│ │ │ │ ├── cascade-rcnn_r50_fpn.py
│ │ │ │ ├── fast-rcnn_r50_fpn.py
│ │ │ │ ├── faster-rcnn_r50-caffe-c4.py
│ │ │ │ ├── faster-rcnn_r50-caffe-dc5.py
│ │ │ │ ├── faster-rcnn_r50_fpn.py
│ │ │ │ ├── mask-rcnn_r50-caffe-c4.py
│ │ │ │ ├── mask-rcnn_r50_fpn.py
│ │ │ │ ├── mask_rcnn_efficientvit_fpn.py
│ │ │ │ ├── retinanet_efficientvit_fpn.py
│ │ │ │ ├── retinanet_r50_fpn.py
│ │ │ │ ├── rpn_r50-caffe-c4.py
│ │ │ │ ├── rpn_r50_fpn.py
│ │ │ │ └── ssd300.py
│ │ │ └── schedules
│ │ │ │ ├── __init__.py
│ │ │ │ ├── schedule_1x.py
│ │ │ │ ├── schedule_20e.py
│ │ │ │ └── schedule_2x.py
│ │ ├── mask_rcnn
│ │ │ ├── __init__.py
│ │ │ └── mask-rcnn_mobilemamba_b1_fpn_1x_coco.py
│ │ ├── retinanet
│ │ │ ├── __init__.py
│ │ │ ├── retinanet_mobilemamba_b1_fpn_1x_coco.py
│ │ │ └── retinanet_tta.py
│ │ └── ssd
│ │ │ ├── __init__.py
│ │ │ ├── ssdlite_mobilemamba_b1_8gpu_2lr_512_coco.py
│ │ │ └── ssdlite_mobilemamba_b1_8gpu_2lr_coco.py
│ ├── mmdet
│ │ ├── __init__.py
│ │ ├── apis
│ │ │ ├── __init__.py
│ │ │ ├── det_inferencer.py
│ │ │ └── inference.py
│ │ ├── configs
│ │ │ ├── __init__.py
│ │ │ ├── _base_
│ │ │ │ ├── __init__.py
│ │ │ │ ├── datasets
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── coco_detection.py
│ │ │ │ │ ├── coco_instance.py
│ │ │ │ │ ├── coco_instance_semantic.py
│ │ │ │ │ ├── coco_panoptic.py
│ │ │ │ │ └── mot_challenge.py
│ │ │ │ ├── default_runtime.py
│ │ │ │ ├── models
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── cascade_mask_rcnn_r50_fpn.py
│ │ │ │ │ ├── cascade_rcnn_r50_fpn.py
│ │ │ │ │ ├── faster_rcnn_r50_fpn.py
│ │ │ │ │ ├── mask_rcnn_r50_caffe_c4.py
│ │ │ │ │ ├── mask_rcnn_r50_fpn.py
│ │ │ │ │ └── retinanet_r50_fpn.py
│ │ │ │ └── schedules
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── schedule_1x.py
│ │ │ │ │ └── schedule_2x.py
│ │ │ ├── cascade_rcnn
│ │ │ │ ├── __init__.py
│ │ │ │ ├── cascade_mask_rcnn_r50_fpn_1x_coco.py
│ │ │ │ └── cascade_rcnn_r50_fpn_1x_coco.py
│ │ │ ├── common
│ │ │ │ ├── __init__.py
│ │ │ │ ├── lsj_100e_coco_detection.py
│ │ │ │ ├── lsj_100e_coco_instance.py
│ │ │ │ ├── lsj_200e_coco_detection.py
│ │ │ │ ├── lsj_200e_coco_instance.py
│ │ │ │ ├── ms_3x_coco.py
│ │ │ │ ├── ms_3x_coco_instance.py
│ │ │ │ ├── ms_90k_coco.py
│ │ │ │ ├── ms_poly_3x_coco_instance.py
│ │ │ │ ├── ms_poly_90k_coco_instance.py
│ │ │ │ ├── ssj_270_coco_instance.py
│ │ │ │ └── ssj_scp_270k_coco_instance.py
│ │ │ ├── deformable_detr
│ │ │ │ ├── __init__.py
│ │ │ │ ├── deformable_detr_r50_16xb2_50e_coco.py
│ │ │ │ ├── deformable_detr_refine_r50_16xb2_50e_coco.py
│ │ │ │ └── deformable_detr_refine_twostage_r50_16xb2_50e_coco.py
│ │ │ ├── detr
│ │ │ │ ├── __init__.py
│ │ │ │ ├── detr_r101_8xb2_500e_coco.py
│ │ │ │ ├── detr_r18_8xb2_500e_coco.py
│ │ │ │ ├── detr_r50_8xb2_150e_coco.py
│ │ │ │ └── detr_r50_8xb2_500e_coco.py
│ │ │ ├── dino
│ │ │ │ ├── __init__.py
│ │ │ │ ├── dino_4scale_r50_8xb2_12e_coco.py
│ │ │ │ ├── dino_4scale_r50_8xb2_24e_coco.py
│ │ │ │ ├── dino_4scale_r50_8xb2_36e_coco.py
│ │ │ │ ├── dino_4scale_r50_improved_8xb2_12e_coco.py
│ │ │ │ ├── dino_5scale_swin_l_8xb2_12e_coco.py
│ │ │ │ └── dino_5scale_swin_l_8xb2_36e_coco.py
│ │ │ ├── faster_rcnn
│ │ │ │ ├── __init__.py
│ │ │ │ └── faster_rcnn_r50_fpn_1x_coco.py
│ │ │ ├── mask_rcnn
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mask_rcnn_r101_caffe_fpn_1x_coco.py
│ │ │ │ ├── mask_rcnn_r101_caffe_fpn_ms_poly_3x_coco.py
│ │ │ │ ├── mask_rcnn_r101_fpn_1x_coco.py
│ │ │ │ ├── mask_rcnn_r101_fpn_2x_coco.py
│ │ │ │ ├── mask_rcnn_r101_fpn_8xb8_amp_lsj_200e_coco.py
│ │ │ │ ├── mask_rcnn_r101_fpn_ms_poly_3x_coco.py
│ │ │ │ ├── mask_rcnn_r18_fpn_8xb8_amp_lsj_200e_coco.py
│ │ │ │ ├── mask_rcnn_r50_caffe_c4_1x_coco.py
│ │ │ │ ├── mask_rcnn_r50_caffe_fpn_1x_coco.py
│ │ │ │ ├── mask_rcnn_r50_caffe_fpn_ms_1x_coco.py
│ │ │ │ ├── mask_rcnn_r50_caffe_fpn_ms_poly_1x_coco.py
│ │ │ │ ├── mask_rcnn_r50_caffe_fpn_ms_poly_2x_coco.py
│ │ │ │ ├── mask_rcnn_r50_caffe_fpn_ms_poly_3x_coco.py
│ │ │ │ ├── mask_rcnn_r50_caffe_fpn_poly_1x_coco_v1.py
│ │ │ │ ├── mask_rcnn_r50_fpn_1x_coco.py
│ │ │ │ ├── mask_rcnn_r50_fpn_1x_wandb_coco.py
│ │ │ │ ├── mask_rcnn_r50_fpn_2x_coco.py
│ │ │ │ ├── mask_rcnn_r50_fpn_8xb8_amp_lsj_200e_coco.py
│ │ │ │ ├── mask_rcnn_r50_fpn_amp_1x_coco.py
│ │ │ │ ├── mask_rcnn_r50_fpn_ms_poly_-3x_coco.py
│ │ │ │ ├── mask_rcnn_r50_fpn_poly_1x_coco.py
│ │ │ │ ├── mask_rcnn_x101_32x4d_fpn_1x_coco.py
│ │ │ │ ├── mask_rcnn_x101_32x4d_fpn_2x_coco.py
│ │ │ │ ├── mask_rcnn_x101_32x4d_fpn_ms_poly_3x_coco.py
│ │ │ │ ├── mask_rcnn_x101_32x8d_fpn_1x_coco.py
│ │ │ │ ├── mask_rcnn_x101_32x8d_fpn_ms_poly_1x_coco.py
│ │ │ │ ├── mask_rcnn_x101_32x8d_fpn_ms_poly_3x_coco.py
│ │ │ │ ├── mask_rcnn_x101_64_4d_fpn_1x_coco.py
│ │ │ │ ├── mask_rcnn_x101_64x4d_fpn_2x_coco.py
│ │ │ │ └── mask_rcnn_x101_64x4d_fpn_ms_poly_3x_coco.py
│ │ │ ├── maskformer
│ │ │ │ ├── __init__.py
│ │ │ │ ├── maskformer_r50_ms_16xb1_75e_coco.py
│ │ │ │ └── maskformer_swin_l_p4_w12_64xb1_ms_300e_coco.py
│ │ │ ├── panoptic_fpn
│ │ │ │ ├── __init__.py
│ │ │ │ ├── panoptic_fpn_r101_fpn_1x_coco.py
│ │ │ │ ├── panoptic_fpn_r101_fpn_ms_3x_coco.py
│ │ │ │ ├── panoptic_fpn_r50_fpn_1x_coco.py
│ │ │ │ └── panoptic_fpn_r50_fpn_ms_3x_coco.py
│ │ │ ├── qdtrack
│ │ │ │ ├── __init__.py
│ │ │ │ ├── qdtrack_faster_rcnn_r50_fpn_4e_base.py
│ │ │ │ └── qdtrack_faster_rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py
│ │ │ ├── retinanet
│ │ │ │ ├── __init__.py
│ │ │ │ ├── retinanet_r50_fpn_1x_coco.py
│ │ │ │ └── retinanet_tta.py
│ │ │ └── rtmdet
│ │ │ │ ├── __init__.py
│ │ │ │ ├── rtmdet_ins_l_8xb32_300e_coco.py
│ │ │ │ ├── rtmdet_ins_m_8xb32_300e_coco.py
│ │ │ │ ├── rtmdet_ins_s_8xb32_300e_coco.py
│ │ │ │ ├── rtmdet_ins_tiny_8xb32_300e_coco.py
│ │ │ │ ├── rtmdet_ins_x_8xb16_300e_coco.py
│ │ │ │ ├── rtmdet_l_8xb32_300e_coco.py
│ │ │ │ ├── rtmdet_m_8xb32_300e_coco.py
│ │ │ │ ├── rtmdet_s_8xb32_300e_coco.py
│ │ │ │ ├── rtmdet_tiny_8xb32_300e_coco.py
│ │ │ │ ├── rtmdet_tta.py
│ │ │ │ └── rtmdet_x_8xb32_300e_coco.py
│ │ ├── datasets
│ │ │ ├── __init__.py
│ │ │ ├── ade20k.py
│ │ │ ├── api_wrappers
│ │ │ │ ├── __init__.py
│ │ │ │ ├── coco_api.py
│ │ │ │ └── cocoeval_mp.py
│ │ │ ├── base_det_dataset.py
│ │ │ ├── base_semseg_dataset.py
│ │ │ ├── base_video_dataset.py
│ │ │ ├── cityscapes.py
│ │ │ ├── coco.py
│ │ │ ├── coco_caption.py
│ │ │ ├── coco_panoptic.py
│ │ │ ├── coco_semantic.py
│ │ │ ├── crowdhuman.py
│ │ │ ├── dataset_wrappers.py
│ │ │ ├── deepfashion.py
│ │ │ ├── dod.py
│ │ │ ├── dsdl.py
│ │ │ ├── flickr30k.py
│ │ │ ├── isaid.py
│ │ │ ├── lvis.py
│ │ │ ├── mdetr_style_refcoco.py
│ │ │ ├── mot_challenge_dataset.py
│ │ │ ├── objects365.py
│ │ │ ├── odvg.py
│ │ │ ├── openimages.py
│ │ │ ├── refcoco.py
│ │ │ ├── reid_dataset.py
│ │ │ ├── samplers
│ │ │ │ ├── __init__.py
│ │ │ │ ├── batch_sampler.py
│ │ │ │ ├── class_aware_sampler.py
│ │ │ │ ├── custom_sample_size_sampler.py
│ │ │ │ ├── multi_data_sampler.py
│ │ │ │ ├── multi_source_sampler.py
│ │ │ │ └── track_img_sampler.py
│ │ │ ├── transforms
│ │ │ │ ├── __init__.py
│ │ │ │ ├── augment_wrappers.py
│ │ │ │ ├── colorspace.py
│ │ │ │ ├── formatting.py
│ │ │ │ ├── frame_sampling.py
│ │ │ │ ├── geometric.py
│ │ │ │ ├── instaboost.py
│ │ │ │ ├── loading.py
│ │ │ │ ├── text_transformers.py
│ │ │ │ ├── transformers_glip.py
│ │ │ │ ├── transforms.py
│ │ │ │ └── wrappers.py
│ │ │ ├── utils.py
│ │ │ ├── v3det.py
│ │ │ ├── voc.py
│ │ │ ├── wider_face.py
│ │ │ ├── xml_style.py
│ │ │ └── youtube_vis_dataset.py
│ │ ├── engine
│ │ │ ├── __init__.py
│ │ │ ├── hooks
│ │ │ │ ├── __init__.py
│ │ │ │ ├── checkloss_hook.py
│ │ │ │ ├── mean_teacher_hook.py
│ │ │ │ ├── memory_profiler_hook.py
│ │ │ │ ├── num_class_check_hook.py
│ │ │ │ ├── pipeline_switch_hook.py
│ │ │ │ ├── set_epoch_info_hook.py
│ │ │ │ ├── sync_norm_hook.py
│ │ │ │ ├── utils.py
│ │ │ │ ├── visualization_hook.py
│ │ │ │ └── yolox_mode_switch_hook.py
│ │ │ ├── optimizers
│ │ │ │ ├── __init__.py
│ │ │ │ └── layer_decay_optimizer_constructor.py
│ │ │ ├── runner
│ │ │ │ ├── __init__.py
│ │ │ │ └── loops.py
│ │ │ └── schedulers
│ │ │ │ ├── __init__.py
│ │ │ │ └── quadratic_warmup.py
│ │ ├── evaluation
│ │ │ ├── __init__.py
│ │ │ ├── evaluator
│ │ │ │ ├── __init__.py
│ │ │ │ └── multi_datasets_evaluator.py
│ │ │ ├── functional
│ │ │ │ ├── __init__.py
│ │ │ │ ├── bbox_overlaps.py
│ │ │ │ ├── cityscapes_utils.py
│ │ │ │ ├── class_names.py
│ │ │ │ ├── mean_ap.py
│ │ │ │ ├── panoptic_utils.py
│ │ │ │ ├── recall.py
│ │ │ │ ├── ytvis.py
│ │ │ │ └── ytviseval.py
│ │ │ └── metrics
│ │ │ │ ├── __init__.py
│ │ │ │ ├── base_video_metric.py
│ │ │ │ ├── cityscapes_metric.py
│ │ │ │ ├── coco_caption_metric.py
│ │ │ │ ├── coco_metric.py
│ │ │ │ ├── coco_occluded_metric.py
│ │ │ │ ├── coco_panoptic_metric.py
│ │ │ │ ├── coco_video_metric.py
│ │ │ │ ├── crowdhuman_metric.py
│ │ │ │ ├── dod_metric.py
│ │ │ │ ├── dump_det_results.py
│ │ │ │ ├── dump_odvg_results.py
│ │ │ │ ├── dump_proposals_metric.py
│ │ │ │ ├── flickr30k_metric.py
│ │ │ │ ├── grefcoco_metric.py
│ │ │ │ ├── lvis_metric.py
│ │ │ │ ├── mot_challenge_metric.py
│ │ │ │ ├── openimages_metric.py
│ │ │ │ ├── ov_coco_metric.py
│ │ │ │ ├── refexp_metric.py
│ │ │ │ ├── refseg_metric.py
│ │ │ │ ├── reid_metric.py
│ │ │ │ ├── semseg_metric.py
│ │ │ │ ├── voc_metric.py
│ │ │ │ └── youtube_vis_metric.py
│ │ ├── models
│ │ │ ├── __init__.py
│ │ │ ├── backbones
│ │ │ │ ├── __init__.py
│ │ │ │ ├── csp_darknet.py
│ │ │ │ ├── cspnext.py
│ │ │ │ ├── darknet.py
│ │ │ │ ├── detectors_resnet.py
│ │ │ │ ├── detectors_resnext.py
│ │ │ │ ├── efficientnet.py
│ │ │ │ ├── hourglass.py
│ │ │ │ ├── hrnet.py
│ │ │ │ ├── mobilenet_v2.py
│ │ │ │ ├── pvt.py
│ │ │ │ ├── regnet.py
│ │ │ │ ├── res2net.py
│ │ │ │ ├── resnest.py
│ │ │ │ ├── resnet.py
│ │ │ │ ├── resnext.py
│ │ │ │ ├── ssd_vgg.py
│ │ │ │ ├── swin.py
│ │ │ │ └── trident_resnet.py
│ │ │ ├── data_preprocessors
│ │ │ │ ├── __init__.py
│ │ │ │ ├── data_preprocessor.py
│ │ │ │ ├── reid_data_preprocessor.py
│ │ │ │ └── track_data_preprocessor.py
│ │ │ ├── dense_heads
│ │ │ │ ├── __init__.py
│ │ │ │ ├── anchor_free_head.py
│ │ │ │ ├── anchor_head.py
│ │ │ │ ├── atss_head.py
│ │ │ │ ├── atss_vlfusion_head.py
│ │ │ │ ├── autoassign_head.py
│ │ │ │ ├── base_dense_head.py
│ │ │ │ ├── base_mask_head.py
│ │ │ │ ├── boxinst_head.py
│ │ │ │ ├── cascade_rpn_head.py
│ │ │ │ ├── centernet_head.py
│ │ │ │ ├── centernet_update_head.py
│ │ │ │ ├── centripetal_head.py
│ │ │ │ ├── condinst_head.py
│ │ │ │ ├── conditional_detr_head.py
│ │ │ │ ├── corner_head.py
│ │ │ │ ├── dab_detr_head.py
│ │ │ │ ├── ddod_head.py
│ │ │ │ ├── ddq_detr_head.py
│ │ │ │ ├── deformable_detr_head.py
│ │ │ │ ├── dense_test_mixins.py
│ │ │ │ ├── detr_head.py
│ │ │ │ ├── dino_head.py
│ │ │ │ ├── embedding_rpn_head.py
│ │ │ │ ├── fcos_head.py
│ │ │ │ ├── fovea_head.py
│ │ │ │ ├── free_anchor_retina_head.py
│ │ │ │ ├── fsaf_head.py
│ │ │ │ ├── ga_retina_head.py
│ │ │ │ ├── ga_rpn_head.py
│ │ │ │ ├── gfl_head.py
│ │ │ │ ├── grounding_dino_head.py
│ │ │ │ ├── guided_anchor_head.py
│ │ │ │ ├── lad_head.py
│ │ │ │ ├── ld_head.py
│ │ │ │ ├── mask2former_head.py
│ │ │ │ ├── maskformer_head.py
│ │ │ │ ├── nasfcos_head.py
│ │ │ │ ├── paa_head.py
│ │ │ │ ├── pisa_retinanet_head.py
│ │ │ │ ├── pisa_ssd_head.py
│ │ │ │ ├── reppoints_head.py
│ │ │ │ ├── retina_head.py
│ │ │ │ ├── retina_sepbn_head.py
│ │ │ │ ├── rpn_head.py
│ │ │ │ ├── rtmdet_head.py
│ │ │ │ ├── rtmdet_ins_head.py
│ │ │ │ ├── sabl_retina_head.py
│ │ │ │ ├── solo_head.py
│ │ │ │ ├── solov2_head.py
│ │ │ │ ├── ssd_head.py
│ │ │ │ ├── tood_head.py
│ │ │ │ ├── vfnet_head.py
│ │ │ │ ├── yolact_head.py
│ │ │ │ ├── yolo_head.py
│ │ │ │ ├── yolof_head.py
│ │ │ │ └── yolox_head.py
│ │ │ ├── detectors
│ │ │ │ ├── __init__.py
│ │ │ │ ├── atss.py
│ │ │ │ ├── autoassign.py
│ │ │ │ ├── base.py
│ │ │ │ ├── base_detr.py
│ │ │ │ ├── boxinst.py
│ │ │ │ ├── cascade_rcnn.py
│ │ │ │ ├── centernet.py
│ │ │ │ ├── condinst.py
│ │ │ │ ├── conditional_detr.py
│ │ │ │ ├── cornernet.py
│ │ │ │ ├── crowddet.py
│ │ │ │ ├── d2_wrapper.py
│ │ │ │ ├── dab_detr.py
│ │ │ │ ├── ddod.py
│ │ │ │ ├── ddq_detr.py
│ │ │ │ ├── deformable_detr.py
│ │ │ │ ├── detr.py
│ │ │ │ ├── dino.py
│ │ │ │ ├── fast_rcnn.py
│ │ │ │ ├── faster_rcnn.py
│ │ │ │ ├── fcos.py
│ │ │ │ ├── fovea.py
│ │ │ │ ├── fsaf.py
│ │ │ │ ├── gfl.py
│ │ │ │ ├── glip.py
│ │ │ │ ├── grid_rcnn.py
│ │ │ │ ├── grounding_dino.py
│ │ │ │ ├── htc.py
│ │ │ │ ├── kd_one_stage.py
│ │ │ │ ├── lad.py
│ │ │ │ ├── mask2former.py
│ │ │ │ ├── mask_rcnn.py
│ │ │ │ ├── mask_scoring_rcnn.py
│ │ │ │ ├── maskformer.py
│ │ │ │ ├── nasfcos.py
│ │ │ │ ├── paa.py
│ │ │ │ ├── panoptic_fpn.py
│ │ │ │ ├── panoptic_two_stage_segmentor.py
│ │ │ │ ├── point_rend.py
│ │ │ │ ├── queryinst.py
│ │ │ │ ├── reppoints_detector.py
│ │ │ │ ├── retinanet.py
│ │ │ │ ├── rpn.py
│ │ │ │ ├── rtmdet.py
│ │ │ │ ├── scnet.py
│ │ │ │ ├── semi_base.py
│ │ │ │ ├── single_stage.py
│ │ │ │ ├── single_stage_instance_seg.py
│ │ │ │ ├── soft_teacher.py
│ │ │ │ ├── solo.py
│ │ │ │ ├── solov2.py
│ │ │ │ ├── sparse_rcnn.py
│ │ │ │ ├── tood.py
│ │ │ │ ├── trident_faster_rcnn.py
│ │ │ │ ├── two_stage.py
│ │ │ │ ├── vfnet.py
│ │ │ │ ├── yolact.py
│ │ │ │ ├── yolo.py
│ │ │ │ ├── yolof.py
│ │ │ │ └── yolox.py
│ │ │ ├── language_models
│ │ │ │ ├── __init__.py
│ │ │ │ └── bert.py
│ │ │ ├── layers
│ │ │ │ ├── __init__.py
│ │ │ │ ├── activations.py
│ │ │ │ ├── bbox_nms.py
│ │ │ │ ├── brick_wrappers.py
│ │ │ │ ├── conv_upsample.py
│ │ │ │ ├── csp_layer.py
│ │ │ │ ├── dropblock.py
│ │ │ │ ├── ema.py
│ │ │ │ ├── inverted_residual.py
│ │ │ │ ├── matrix_nms.py
│ │ │ │ ├── msdeformattn_pixel_decoder.py
│ │ │ │ ├── normed_predictor.py
│ │ │ │ ├── pixel_decoder.py
│ │ │ │ ├── positional_encoding.py
│ │ │ │ ├── res_layer.py
│ │ │ │ ├── se_layer.py
│ │ │ │ └── transformer
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── conditional_detr_layers.py
│ │ │ │ │ ├── dab_detr_layers.py
│ │ │ │ │ ├── ddq_detr_layers.py
│ │ │ │ │ ├── deformable_detr_layers.py
│ │ │ │ │ ├── detr_layers.py
│ │ │ │ │ ├── dino_layers.py
│ │ │ │ │ ├── grounding_dino_layers.py
│ │ │ │ │ ├── mask2former_layers.py
│ │ │ │ │ └── utils.py
│ │ │ ├── losses
│ │ │ │ ├── __init__.py
│ │ │ │ ├── accuracy.py
│ │ │ │ ├── ae_loss.py
│ │ │ │ ├── balanced_l1_loss.py
│ │ │ │ ├── cross_entropy_loss.py
│ │ │ │ ├── ddq_detr_aux_loss.py
│ │ │ │ ├── dice_loss.py
│ │ │ │ ├── eqlv2_loss.py
│ │ │ │ ├── focal_loss.py
│ │ │ │ ├── gaussian_focal_loss.py
│ │ │ │ ├── gfocal_loss.py
│ │ │ │ ├── ghm_loss.py
│ │ │ │ ├── iou_loss.py
│ │ │ │ ├── kd_loss.py
│ │ │ │ ├── l2_loss.py
│ │ │ │ ├── margin_loss.py
│ │ │ │ ├── mse_loss.py
│ │ │ │ ├── multipos_cross_entropy_loss.py
│ │ │ │ ├── pisa_loss.py
│ │ │ │ ├── seesaw_loss.py
│ │ │ │ ├── smooth_l1_loss.py
│ │ │ │ ├── triplet_loss.py
│ │ │ │ ├── utils.py
│ │ │ │ └── varifocal_loss.py
│ │ │ ├── mot
│ │ │ │ ├── __init__.py
│ │ │ │ ├── base.py
│ │ │ │ ├── bytetrack.py
│ │ │ │ ├── deep_sort.py
│ │ │ │ ├── ocsort.py
│ │ │ │ ├── qdtrack.py
│ │ │ │ └── strongsort.py
│ │ │ ├── necks
│ │ │ │ ├── __init__.py
│ │ │ │ ├── bfp.py
│ │ │ │ ├── channel_mapper.py
│ │ │ │ ├── cspnext_pafpn.py
│ │ │ │ ├── ct_resnet_neck.py
│ │ │ │ ├── dilated_encoder.py
│ │ │ │ ├── dyhead.py
│ │ │ │ ├── fpg.py
│ │ │ │ ├── fpn.py
│ │ │ │ ├── fpn_carafe.py
│ │ │ │ ├── fpn_dropblock.py
│ │ │ │ ├── hrfpn.py
│ │ │ │ ├── nas_fpn.py
│ │ │ │ ├── nasfcos_fpn.py
│ │ │ │ ├── pafpn.py
│ │ │ │ ├── rfp.py
│ │ │ │ ├── ssd_neck.py
│ │ │ │ ├── ssh.py
│ │ │ │ ├── yolo_neck.py
│ │ │ │ └── yolox_pafpn.py
│ │ │ ├── reid
│ │ │ │ ├── __init__.py
│ │ │ │ ├── base_reid.py
│ │ │ │ ├── fc_module.py
│ │ │ │ ├── gap.py
│ │ │ │ └── linear_reid_head.py
│ │ │ ├── roi_heads
│ │ │ │ ├── __init__.py
│ │ │ │ ├── base_roi_head.py
│ │ │ │ ├── bbox_heads
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── bbox_head.py
│ │ │ │ │ ├── convfc_bbox_head.py
│ │ │ │ │ ├── dii_head.py
│ │ │ │ │ ├── double_bbox_head.py
│ │ │ │ │ ├── multi_instance_bbox_head.py
│ │ │ │ │ ├── sabl_head.py
│ │ │ │ │ └── scnet_bbox_head.py
│ │ │ │ ├── cascade_roi_head.py
│ │ │ │ ├── double_roi_head.py
│ │ │ │ ├── dynamic_roi_head.py
│ │ │ │ ├── grid_roi_head.py
│ │ │ │ ├── htc_roi_head.py
│ │ │ │ ├── mask_heads
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── coarse_mask_head.py
│ │ │ │ │ ├── dynamic_mask_head.py
│ │ │ │ │ ├── fcn_mask_head.py
│ │ │ │ │ ├── feature_relay_head.py
│ │ │ │ │ ├── fused_semantic_head.py
│ │ │ │ │ ├── global_context_head.py
│ │ │ │ │ ├── grid_head.py
│ │ │ │ │ ├── htc_mask_head.py
│ │ │ │ │ ├── mask_point_head.py
│ │ │ │ │ ├── maskiou_head.py
│ │ │ │ │ ├── scnet_mask_head.py
│ │ │ │ │ └── scnet_semantic_head.py
│ │ │ │ ├── mask_scoring_roi_head.py
│ │ │ │ ├── multi_instance_roi_head.py
│ │ │ │ ├── pisa_roi_head.py
│ │ │ │ ├── point_rend_roi_head.py
│ │ │ │ ├── roi_extractors
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base_roi_extractor.py
│ │ │ │ │ ├── generic_roi_extractor.py
│ │ │ │ │ └── single_level_roi_extractor.py
│ │ │ │ ├── scnet_roi_head.py
│ │ │ │ ├── shared_heads
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── res_layer.py
│ │ │ │ ├── sparse_roi_head.py
│ │ │ │ ├── standard_roi_head.py
│ │ │ │ ├── test_mixins.py
│ │ │ │ └── trident_roi_head.py
│ │ │ ├── seg_heads
│ │ │ │ ├── __init__.py
│ │ │ │ ├── base_semantic_head.py
│ │ │ │ ├── panoptic_fpn_head.py
│ │ │ │ └── panoptic_fusion_heads
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base_panoptic_fusion_head.py
│ │ │ │ │ ├── heuristic_fusion_head.py
│ │ │ │ │ └── maskformer_fusion_head.py
│ │ │ ├── task_modules
│ │ │ │ ├── __init__.py
│ │ │ │ ├── assigners
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── approx_max_iou_assigner.py
│ │ │ │ │ ├── assign_result.py
│ │ │ │ │ ├── atss_assigner.py
│ │ │ │ │ ├── base_assigner.py
│ │ │ │ │ ├── center_region_assigner.py
│ │ │ │ │ ├── dynamic_soft_label_assigner.py
│ │ │ │ │ ├── grid_assigner.py
│ │ │ │ │ ├── hungarian_assigner.py
│ │ │ │ │ ├── iou2d_calculator.py
│ │ │ │ │ ├── match_cost.py
│ │ │ │ │ ├── max_iou_assigner.py
│ │ │ │ │ ├── multi_instance_assigner.py
│ │ │ │ │ ├── point_assigner.py
│ │ │ │ │ ├── region_assigner.py
│ │ │ │ │ ├── sim_ota_assigner.py
│ │ │ │ │ ├── task_aligned_assigner.py
│ │ │ │ │ ├── topk_hungarian_assigner.py
│ │ │ │ │ └── uniform_assigner.py
│ │ │ │ ├── builder.py
│ │ │ │ ├── coders
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base_bbox_coder.py
│ │ │ │ │ ├── bucketing_bbox_coder.py
│ │ │ │ │ ├── delta_xywh_bbox_coder.py
│ │ │ │ │ ├── distance_point_bbox_coder.py
│ │ │ │ │ ├── legacy_delta_xywh_bbox_coder.py
│ │ │ │ │ ├── pseudo_bbox_coder.py
│ │ │ │ │ ├── tblr_bbox_coder.py
│ │ │ │ │ └── yolo_bbox_coder.py
│ │ │ │ ├── prior_generators
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── anchor_generator.py
│ │ │ │ │ ├── point_generator.py
│ │ │ │ │ └── utils.py
│ │ │ │ ├── samplers
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base_sampler.py
│ │ │ │ │ ├── combined_sampler.py
│ │ │ │ │ ├── instance_balanced_pos_sampler.py
│ │ │ │ │ ├── iou_balanced_neg_sampler.py
│ │ │ │ │ ├── mask_pseudo_sampler.py
│ │ │ │ │ ├── mask_sampling_result.py
│ │ │ │ │ ├── multi_instance_random_sampler.py
│ │ │ │ │ ├── multi_instance_sampling_result.py
│ │ │ │ │ ├── ohem_sampler.py
│ │ │ │ │ ├── pseudo_sampler.py
│ │ │ │ │ ├── random_sampler.py
│ │ │ │ │ ├── sampling_result.py
│ │ │ │ │ └── score_hlr_sampler.py
│ │ │ │ └── tracking
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── aflink.py
│ │ │ │ │ ├── camera_motion_compensation.py
│ │ │ │ │ ├── interpolation.py
│ │ │ │ │ ├── kalman_filter.py
│ │ │ │ │ └── similarity.py
│ │ │ ├── test_time_augs
│ │ │ │ ├── __init__.py
│ │ │ │ ├── det_tta.py
│ │ │ │ └── merge_augs.py
│ │ │ ├── trackers
│ │ │ │ ├── __init__.py
│ │ │ │ ├── base_tracker.py
│ │ │ │ ├── byte_tracker.py
│ │ │ │ ├── masktrack_rcnn_tracker.py
│ │ │ │ ├── ocsort_tracker.py
│ │ │ │ ├── quasi_dense_tracker.py
│ │ │ │ ├── sort_tracker.py
│ │ │ │ └── strongsort_tracker.py
│ │ │ ├── tracking_heads
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mask2former_track_head.py
│ │ │ │ ├── quasi_dense_embed_head.py
│ │ │ │ ├── quasi_dense_track_head.py
│ │ │ │ ├── roi_embed_head.py
│ │ │ │ └── roi_track_head.py
│ │ │ ├── utils
│ │ │ │ ├── __init__.py
│ │ │ │ ├── gaussian_target.py
│ │ │ │ ├── image.py
│ │ │ │ ├── make_divisible.py
│ │ │ │ ├── misc.py
│ │ │ │ ├── panoptic_gt_processing.py
│ │ │ │ ├── point_sample.py
│ │ │ │ ├── vlfuse_helper.py
│ │ │ │ └── wbf.py
│ │ │ └── vis
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mask2former_vis.py
│ │ │ │ └── masktrack_rcnn.py
│ │ ├── registry.py
│ │ ├── structures
│ │ │ ├── __init__.py
│ │ │ ├── bbox
│ │ │ │ ├── __init__.py
│ │ │ │ ├── base_boxes.py
│ │ │ │ ├── bbox_overlaps.py
│ │ │ │ ├── box_type.py
│ │ │ │ ├── horizontal_boxes.py
│ │ │ │ └── transforms.py
│ │ │ ├── det_data_sample.py
│ │ │ ├── mask
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mask_target.py
│ │ │ │ ├── structures.py
│ │ │ │ └── utils.py
│ │ │ ├── reid_data_sample.py
│ │ │ └── track_data_sample.py
│ │ ├── testing
│ │ │ ├── __init__.py
│ │ │ ├── _fast_stop_training_hook.py
│ │ │ └── _utils.py
│ │ ├── utils
│ │ │ ├── __init__.py
│ │ │ ├── benchmark.py
│ │ │ ├── collect_env.py
│ │ │ ├── compat_config.py
│ │ │ ├── contextmanagers.py
│ │ │ ├── dist_utils.py
│ │ │ ├── large_image.py
│ │ │ ├── logger.py
│ │ │ ├── memory.py
│ │ │ ├── misc.py
│ │ │ ├── mot_error_visualize.py
│ │ │ ├── profiling.py
│ │ │ ├── replace_cfg_vals.py
│ │ │ ├── setup_env.py
│ │ │ ├── split_batch.py
│ │ │ ├── typing_utils.py
│ │ │ ├── util_mixins.py
│ │ │ └── util_random.py
│ │ ├── version.py
│ │ └── visualization
│ │ │ ├── __init__.py
│ │ │ ├── local_visualizer.py
│ │ │ └── palette.py
│ └── tools
│ │ ├── __init__.py
│ │ ├── analysis_tools
│ │ ├── __init__.py
│ │ ├── analyze_logs.py
│ │ ├── analyze_results.py
│ │ ├── benchmark.py
│ │ ├── browse_dataset.py
│ │ ├── browse_grounding_dataset.py
│ │ ├── browse_grounding_raw.py
│ │ ├── coco_error_analysis.py
│ │ ├── coco_occluded_separated_recall.py
│ │ ├── confusion_matrix.py
│ │ ├── eval_metric.py
│ │ ├── fuse_results.py
│ │ ├── get_flops.py
│ │ ├── mot
│ │ │ ├── __init__.py
│ │ │ ├── browse_dataset.py
│ │ │ ├── dist_mot_search.sh
│ │ │ ├── mot_error_visualize.py
│ │ │ ├── mot_param_search.py
│ │ │ └── slurm_mot_search.sh
│ │ ├── optimize_anchors.py
│ │ ├── robustness_eval.py
│ │ └── test_robustness.py
│ │ ├── dataset_converters
│ │ ├── __init__.py
│ │ ├── ade20k2coco.py
│ │ ├── cityscapes.py
│ │ ├── coco2odvg.py
│ │ ├── coco2ovd.py
│ │ ├── coco_stuff164k.py
│ │ ├── crowdhuman2coco.py
│ │ ├── extract_coco_from_mixed.py
│ │ ├── fix_o365_names.py
│ │ ├── goldg2odvg.py
│ │ ├── grit2odvg.py
│ │ ├── grit_processing.py
│ │ ├── images2coco.py
│ │ ├── lvis2odvg.py
│ │ ├── lvis2ovd.py
│ │ ├── mot2coco.py
│ │ ├── mot2reid.py
│ │ ├── openimages2odvg.py
│ │ ├── pascal_voc.py
│ │ ├── prepare_coco_semantic_annos_from_panoptic_annos.py
│ │ ├── refcoco2odvg.py
│ │ ├── remove_cocotrain2017_from_refcoco.py
│ │ ├── scripts
│ │ │ ├── preprocess_coco2017.sh
│ │ │ ├── preprocess_voc2007.sh
│ │ │ └── preprocess_voc2012.sh
│ │ ├── youtubevis2coco.py
│ │ └── zhiyuan_objv2_train_names_fix.csv
│ │ ├── deployment
│ │ ├── __init__.py
│ │ ├── mmdet2torchserve.py
│ │ ├── mmdet_handler.py
│ │ └── test_torchserver.py
│ │ ├── dist_test.sh
│ │ ├── dist_test_tracking.sh
│ │ ├── dist_train.sh
│ │ ├── get_flops.py
│ │ ├── misc
│ │ ├── __init__.py
│ │ ├── download_dataset.py
│ │ ├── gen_coco_panoptic_test_info.py
│ │ ├── get_crowdhuman_id_hw.py
│ │ ├── get_image_metas.py
│ │ ├── print_config.py
│ │ ├── split_coco.py
│ │ └── split_odvg.py
│ │ ├── model_converters
│ │ ├── __init__.py
│ │ ├── detectron2_to_mmdet.py
│ │ ├── detectron2pytorch.py
│ │ ├── detic_to_mmdet.py
│ │ ├── glip_to_mmdet.py
│ │ ├── groundingdino_to_mmdet.py
│ │ ├── publish_model.py
│ │ ├── regnet2mmdet.py
│ │ ├── selfsup2mmdet.py
│ │ ├── swinv1_to_mmdet.py
│ │ ├── upgrade_model_version.py
│ │ └── upgrade_ssd_version.py
│ │ ├── slurm_test.sh
│ │ ├── slurm_test_tracking.sh
│ │ ├── slurm_train.sh
│ │ ├── test.py
│ │ ├── test_tracking.py
│ │ └── train.py
└── seg
│ ├── .DS_Store
│ ├── backbones
│ ├── __init__.py
│ ├── basic_modules.py
│ ├── lib_mamba
│ │ ├── __init__.py
│ │ ├── csm_triton.py
│ │ ├── csm_tritonk2.py
│ │ ├── csms6s.py
│ │ ├── kernels
│ │ │ └── selective_scan
│ │ │ │ ├── README.md
│ │ │ │ ├── csrc
│ │ │ │ └── selective_scan
│ │ │ │ │ ├── cub_extra.cuh
│ │ │ │ │ ├── cus
│ │ │ │ │ ├── selective_scan.cpp
│ │ │ │ │ ├── selective_scan_bwd_kernel.cuh
│ │ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ │ └── selective_scan_fwd_kernel.cuh
│ │ │ │ │ ├── cusndstate
│ │ │ │ │ ├── selective_scan_bwd_kernel_ndstate.cuh
│ │ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ │ ├── selective_scan_fwd_kernel_ndstate.cuh
│ │ │ │ │ ├── selective_scan_ndstate.cpp
│ │ │ │ │ └── selective_scan_ndstate.h
│ │ │ │ │ ├── cusnrow
│ │ │ │ │ ├── selective_scan_bwd_kernel_nrow.cuh
│ │ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ │ ├── selective_scan_core_bwd2.cu
│ │ │ │ │ ├── selective_scan_core_bwd3.cu
│ │ │ │ │ ├── selective_scan_core_bwd4.cu
│ │ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ │ ├── selective_scan_core_fwd2.cu
│ │ │ │ │ ├── selective_scan_core_fwd3.cu
│ │ │ │ │ ├── selective_scan_core_fwd4.cu
│ │ │ │ │ ├── selective_scan_fwd_kernel_nrow.cuh
│ │ │ │ │ └── selective_scan_nrow.cpp
│ │ │ │ │ ├── cusoflex
│ │ │ │ │ ├── selective_scan_bwd_kernel_oflex.cuh
│ │ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ │ ├── selective_scan_fwd_kernel_oflex.cuh
│ │ │ │ │ └── selective_scan_oflex.cpp
│ │ │ │ │ ├── reverse_scan.cuh
│ │ │ │ │ ├── selective_scan.h
│ │ │ │ │ ├── selective_scan_common.h
│ │ │ │ │ ├── static_switch.h
│ │ │ │ │ └── uninitialized_copy.cuh
│ │ │ │ ├── setup.py
│ │ │ │ ├── test_selective_scan.py
│ │ │ │ ├── test_selective_scan_easy.py
│ │ │ │ └── test_selective_scan_speed.py
│ │ ├── vmamba.py
│ │ └── vmambanew.py
│ └── mobilemamba.py
│ ├── configs
│ ├── .DS_Store
│ ├── _base_
│ │ ├── datasets
│ │ │ ├── ade20k.py
│ │ │ ├── ade20k_640x640.py
│ │ │ ├── bdd100k.py
│ │ │ ├── chase_db1.py
│ │ │ ├── cityscapes.py
│ │ │ ├── cityscapes_1024x1024.py
│ │ │ ├── cityscapes_768x768.py
│ │ │ ├── cityscapes_769x769.py
│ │ │ ├── cityscapes_832x832.py
│ │ │ ├── coco-stuff10k.py
│ │ │ ├── coco-stuff164k.py
│ │ │ ├── drive.py
│ │ │ ├── hrf.py
│ │ │ ├── hsi_drive.py
│ │ │ ├── isaid.py
│ │ │ ├── levir_256x256.py
│ │ │ ├── loveda.py
│ │ │ ├── mapillary_v1.py
│ │ │ ├── mapillary_v1_65.py
│ │ │ ├── mapillary_v2.py
│ │ │ ├── nyu.py
│ │ │ ├── nyu_512x512.py
│ │ │ ├── pascal_context.py
│ │ │ ├── pascal_context_59.py
│ │ │ ├── pascal_voc12.py
│ │ │ ├── pascal_voc12_aug.py
│ │ │ ├── potsdam.py
│ │ │ ├── refuge.py
│ │ │ ├── stare.py
│ │ │ ├── synapse.py
│ │ │ └── vaihingen.py
│ │ ├── default_runtime.py
│ │ ├── models
│ │ │ ├── ann_r50-d8.py
│ │ │ ├── apcnet_r50-d8.py
│ │ │ ├── bisenetv1_r18-d32.py
│ │ │ ├── bisenetv2.py
│ │ │ ├── ccnet_r50-d8.py
│ │ │ ├── cgnet.py
│ │ │ ├── danet_r50-d8.py
│ │ │ ├── deeplabv3_r50-d8.py
│ │ │ ├── deeplabv3_unet_s5-d16.py
│ │ │ ├── deeplabv3plus_r50-d8.py
│ │ │ ├── dmnet_r50-d8.py
│ │ │ ├── dnl_r50-d8.py
│ │ │ ├── dpt_vit-b16.py
│ │ │ ├── emanet_r50-d8.py
│ │ │ ├── encnet_r50-d8.py
│ │ │ ├── erfnet_fcn.py
│ │ │ ├── fast_scnn.py
│ │ │ ├── fastfcn_r50-d32_jpu_psp.py
│ │ │ ├── fcn_hr18.py
│ │ │ ├── fcn_r50-d8.py
│ │ │ ├── fcn_unet_s5-d16.py
│ │ │ ├── fpn_poolformer_s12.py
│ │ │ ├── fpn_r50.py
│ │ │ ├── gcnet_r50-d8.py
│ │ │ ├── icnet_r50-d8.py
│ │ │ ├── isanet_r50-d8.py
│ │ │ ├── lraspp_m-v3-d8.py
│ │ │ ├── nonlocal_r50-d8.py
│ │ │ ├── ocrnet_hr18.py
│ │ │ ├── ocrnet_r50-d8.py
│ │ │ ├── pointrend_r50.py
│ │ │ ├── psanet_r50-d8.py
│ │ │ ├── pspnet_r50-d8.py
│ │ │ ├── pspnet_unet_s5-d16.py
│ │ │ ├── san_vit-b16.py
│ │ │ ├── segformer_mit-b0.py
│ │ │ ├── segmenter_vit-b16_mask.py
│ │ │ ├── setr_mla.py
│ │ │ ├── setr_naive.py
│ │ │ ├── setr_pup.py
│ │ │ ├── stdc.py
│ │ │ ├── twins_pcpvt-s_fpn.py
│ │ │ ├── twins_pcpvt-s_upernet.py
│ │ │ ├── upernet_beit.py
│ │ │ ├── upernet_convnext.py
│ │ │ ├── upernet_mae.py
│ │ │ ├── upernet_r50.py
│ │ │ ├── upernet_swin.py
│ │ │ ├── upernet_vit-b16_ln_mln.py
│ │ │ └── vpd_sd.py
│ │ └── schedules
│ │ │ ├── schedule_160k.py
│ │ │ ├── schedule_20k.py
│ │ │ ├── schedule_240k.py
│ │ │ ├── schedule_25k.py
│ │ │ ├── schedule_320k.py
│ │ │ ├── schedule_40k.py
│ │ │ └── schedule_80k.py
│ ├── deeplabv3
│ │ └── deeplabv3_mobilemamba_b4-80k_ade20k-512x512.py
│ ├── pspnet
│ │ └── pspnet_mobilemamba_b4-80k_ade20k-512x512.py
│ └── sem_fpn
│ │ └── fpn_mobilemamba_b4-160k_ade20k-512x512.py
│ └── tools
│ ├── .DS_Store
│ ├── analysis_tools
│ ├── analyze_logs.py
│ ├── benchmark.py
│ ├── browse_dataset.py
│ ├── confusion_matrix.py
│ ├── get_flops.py
│ └── visualization_cam.py
│ ├── dataset_converters
│ ├── chase_db1.py
│ ├── cityscapes.py
│ ├── coco_stuff10k.py
│ ├── coco_stuff164k.py
│ ├── drive.py
│ ├── hrf.py
│ ├── isaid.py
│ ├── levircd.py
│ ├── loveda.py
│ ├── nyu.py
│ ├── pascal_context.py
│ ├── potsdam.py
│ ├── refuge.py
│ ├── stare.py
│ ├── synapse.py
│ ├── vaihingen.py
│ └── voc_aug.py
│ ├── deployment
│ └── pytorch2torchscript.py
│ ├── dist_test.sh
│ ├── dist_train.sh
│ ├── misc
│ ├── browse_dataset.py
│ ├── print_config.py
│ └── publish_model.py
│ ├── model_converters
│ ├── beit2mmseg.py
│ ├── clip2mmseg.py
│ ├── mit2mmseg.py
│ ├── san2mmseg.py
│ ├── stdc2mmseg.py
│ ├── swin2mmseg.py
│ ├── twins2mmseg.py
│ ├── vit2mmseg.py
│ └── vitjax2mmseg.py
│ ├── slurm_test.sh
│ ├── slurm_train.sh
│ ├── test.py
│ ├── torchserve
│ ├── mmseg2torchserve.py
│ ├── mmseg_handler.py
│ └── test_torchserve.py
│ └── train.py
├── loss
├── __init__.py
├── base_loss.py
├── cls_loss.py
└── gan_loss.py
├── model
├── .DS_Store
├── __init__.py
├── cls_factory.py
├── lib_mamba
│ ├── __init__.py
│ ├── csm_triton.py
│ ├── csm_tritonk2.py
│ ├── csms6s.py
│ ├── kernels
│ │ └── selective_scan
│ │ │ ├── README.md
│ │ │ ├── csrc
│ │ │ └── selective_scan
│ │ │ │ ├── cub_extra.cuh
│ │ │ │ ├── cus
│ │ │ │ ├── selective_scan.cpp
│ │ │ │ ├── selective_scan_bwd_kernel.cuh
│ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ └── selective_scan_fwd_kernel.cuh
│ │ │ │ ├── cusndstate
│ │ │ │ ├── selective_scan_bwd_kernel_ndstate.cuh
│ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ ├── selective_scan_fwd_kernel_ndstate.cuh
│ │ │ │ ├── selective_scan_ndstate.cpp
│ │ │ │ └── selective_scan_ndstate.h
│ │ │ │ ├── cusnrow
│ │ │ │ ├── selective_scan_bwd_kernel_nrow.cuh
│ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ ├── selective_scan_core_bwd2.cu
│ │ │ │ ├── selective_scan_core_bwd3.cu
│ │ │ │ ├── selective_scan_core_bwd4.cu
│ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ ├── selective_scan_core_fwd2.cu
│ │ │ │ ├── selective_scan_core_fwd3.cu
│ │ │ │ ├── selective_scan_core_fwd4.cu
│ │ │ │ ├── selective_scan_fwd_kernel_nrow.cuh
│ │ │ │ └── selective_scan_nrow.cpp
│ │ │ │ ├── cusoflex
│ │ │ │ ├── selective_scan_bwd_kernel_oflex.cuh
│ │ │ │ ├── selective_scan_core_bwd.cu
│ │ │ │ ├── selective_scan_core_fwd.cu
│ │ │ │ ├── selective_scan_fwd_kernel_oflex.cuh
│ │ │ │ └── selective_scan_oflex.cpp
│ │ │ │ ├── reverse_scan.cuh
│ │ │ │ ├── selective_scan.h
│ │ │ │ ├── selective_scan_common.h
│ │ │ │ ├── static_switch.h
│ │ │ │ └── uninitialized_copy.cuh
│ │ │ ├── setup.py
│ │ │ ├── test_selective_scan.py
│ │ │ ├── test_selective_scan_easy.py
│ │ │ └── test_selective_scan_speed.py
│ ├── vmamba.py
│ └── vmambanew.py
├── lib_teacher
│ ├── __init__.py
│ └── tresnet_v2.py
└── mobilemamba
│ ├── basic_modules.py
│ └── mobilemamba.py
├── optim
├── __init__.py
└── scheduler.py
├── run.py
├── trainer
├── __init__.py
├── _base_trainer.py
└── cls.py
├── util
├── __init__.py
├── data.py
├── net.py
├── registry.py
└── util.py
└── weights
├── MobileMamba_B1
└── mobilemamba_b1.txt
├── MobileMamba_B1s
└── mobilemamba_b1s.txt
├── MobileMamba_B2
└── mobilemamba_b2.txt
├── MobileMamba_B2s
└── mobilemamba_b2s.txt
├── MobileMamba_B4
└── mobilemamba_b4.txt
├── MobileMamba_B4s
└── mobilemamba_b4s.txt
├── MobileMamba_S6
└── mobilemamba_s6.txt
├── MobileMamba_S6s
└── mobilemamba_s6s.txt
├── MobileMamba_T2
└── mobilemamba_t2.txt
├── MobileMamba_T2s
└── mobilemamba_t2s.txt
├── MobileMamba_T4
└── mobilemamba_t4.txt
├── MobileMamba_T4s
└── mobilemamba_t4s.txt
└── downstream
├── det
├── maskrcnn.log
├── retinanet.log
├── ssdlite.log
└── ssdlite_512.log
└── seg
├── deeplabv3.log
├── fpn.log
└── pspnet.log
/.idea/MobileMamba.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 lewandofskee
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/assets/comparewithmamba.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/assets/comparewithmamba.png
--------------------------------------------------------------------------------
/assets/logo_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/assets/logo_512.png
--------------------------------------------------------------------------------
/assets/mobilemamba.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/assets/mobilemamba.png
--------------------------------------------------------------------------------
/assets/mobilemamba_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/assets/mobilemamba_logo.png
--------------------------------------------------------------------------------
/assets/motivation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/assets/motivation.png
--------------------------------------------------------------------------------
/configs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/configs/.DS_Store
--------------------------------------------------------------------------------
/configs/cls_big_21k.py:
--------------------------------------------------------------------------------
1 | from argparse import Namespace as _Namespace
2 |
3 | # =========> dataset <=================================
4 | data = _Namespace()
5 | data.nb_classes = 10450
6 |
7 | # =========> trainer <=================================
8 | trainer = _Namespace()
9 | trainer.epoch_full = 90
10 | trainer.test_start_epoch = 80
11 | trainer.test_per_epoch = 5
12 |
--------------------------------------------------------------------------------
/data/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/data/.DS_Store
--------------------------------------------------------------------------------
/downstream/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/__init__.py
--------------------------------------------------------------------------------
/downstream/det/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/.DS_Store
--------------------------------------------------------------------------------
/downstream/det/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/__init__.py
--------------------------------------------------------------------------------
/downstream/det/backbones/__init__.py:
--------------------------------------------------------------------------------
1 | from .mobilemamba import MobileMamba
2 | from .efficientvit_fpn import EfficientViTFPN
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_ndstate.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_ndstate.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd2.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<2, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<2, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<2, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd3.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<3, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<3, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<3, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd4.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<4, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<4, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<4, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd2.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<2, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<2, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<2, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd3.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<3, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<3, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<3, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd4.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<4, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<4, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<4, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_oflex.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 | template void selective_scan_bwd_cuda<1, at::Half, float, at::Half>(SSMParamsBwd ¶ms, cudaStream_t stream);
10 | template void selective_scan_bwd_cuda<1, at::BFloat16, float, at::BFloat16>(SSMParamsBwd ¶ms, cudaStream_t stream);
11 |
12 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_oflex.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 | template void selective_scan_fwd_cuda<1, at::Half, float, at::Half>(SSMParamsBase ¶ms, cudaStream_t stream);
10 | template void selective_scan_fwd_cuda<1, at::BFloat16, float, at::BFloat16>(SSMParamsBase ¶ms, cudaStream_t stream);
11 |
12 |
--------------------------------------------------------------------------------
/downstream/det/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/static_switch.h:
--------------------------------------------------------------------------------
1 | // Inspired by https://github.com/NVIDIA/DALI/blob/main/include/dali/core/static_switch.h
2 | // and https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/Dispatch.h
3 |
4 | #pragma once
5 |
6 | /// @param COND - a boolean expression to switch by
7 | /// @param CONST_NAME - a name given for the constexpr bool variable.
8 | /// @param ... - code to execute for true and false
9 | ///
10 | /// Usage:
11 | /// ```
12 | /// BOOL_SWITCH(flag, BoolConst, [&] {
13 | /// some_function(...);
14 | /// });
15 | /// ```
16 | #define BOOL_SWITCH(COND, CONST_NAME, ...) \
17 | [&] { \
18 | if (COND) { \
19 | constexpr bool CONST_NAME = true; \
20 | return __VA_ARGS__(); \
21 | } else { \
22 | constexpr bool CONST_NAME = false; \
23 | return __VA_ARGS__(); \
24 | } \
25 | }()
26 |
--------------------------------------------------------------------------------
/downstream/det/configs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/.DS_Store
--------------------------------------------------------------------------------
/downstream/det/configs/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/__init__.py
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/_base_/__init__.py
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/datasets/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/_base_/datasets/__init__.py
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/datasets/ade20k_panoptic.py:
--------------------------------------------------------------------------------
1 | # dataset settings
2 | dataset_type = 'ADE20KPanopticDataset'
3 | data_root = 'data/ADEChallengeData2016/'
4 |
5 | backend_args = None
6 |
7 | test_pipeline = [
8 | dict(type='LoadImageFromFile', backend_args=backend_args),
9 | dict(type='Resize', scale=(2560, 640), keep_ratio=True),
10 | dict(type='LoadPanopticAnnotations', backend_args=backend_args),
11 | dict(
12 | type='PackDetInputs',
13 | meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
14 | 'scale_factor'))
15 | ]
16 |
17 | val_dataloader = dict(
18 | batch_size=1,
19 | num_workers=0,
20 | persistent_workers=False,
21 | drop_last=False,
22 | sampler=dict(type='DefaultSampler', shuffle=False),
23 | dataset=dict(
24 | type=dataset_type,
25 | data_root=data_root,
26 | ann_file='ade20k_panoptic_val.json',
27 | data_prefix=dict(img='images/validation/', seg='ade20k_panoptic_val/'),
28 | test_mode=True,
29 | pipeline=test_pipeline,
30 | backend_args=backend_args))
31 | test_dataloader = val_dataloader
32 |
33 | val_evaluator = dict(
34 | type='CocoPanopticMetric',
35 | ann_file=data_root + 'ade20k_panoptic_val.json',
36 | seg_prefix=data_root + 'ade20k_panoptic_val/',
37 | backend_args=backend_args)
38 | test_evaluator = val_evaluator
39 |
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/datasets/lvis_v1_instance.py:
--------------------------------------------------------------------------------
1 | # dataset settings
2 | _base_ = 'lvis_v0.5_instance.py'
3 | dataset_type = 'LVISV1Dataset'
4 | data_root = 'data/lvis_v1/'
5 |
6 | train_dataloader = dict(
7 | dataset=dict(
8 | dataset=dict(
9 | type=dataset_type,
10 | data_root=data_root,
11 | ann_file='annotations/lvis_v1_train.json',
12 | data_prefix=dict(img=''))))
13 | val_dataloader = dict(
14 | dataset=dict(
15 | type=dataset_type,
16 | data_root=data_root,
17 | ann_file='annotations/lvis_v1_val.json',
18 | data_prefix=dict(img='')))
19 | test_dataloader = val_dataloader
20 |
21 | val_evaluator = dict(ann_file=data_root + 'annotations/lvis_v1_val.json')
22 | test_evaluator = val_evaluator
23 |
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/default_runtime.py:
--------------------------------------------------------------------------------
1 | default_scope = 'mmdet'
2 |
3 | default_hooks = dict(
4 | timer=dict(type='IterTimerHook'),
5 | logger=dict(type='LoggerHook', interval=50),
6 | param_scheduler=dict(type='ParamSchedulerHook'),
7 | checkpoint=dict(type='CheckpointHook', interval=1),
8 | sampler_seed=dict(type='DistSamplerSeedHook'),
9 | visualization=dict(type='DetVisualizationHook'))
10 |
11 | env_cfg = dict(
12 | cudnn_benchmark=False,
13 | mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
14 | dist_cfg=dict(backend='nccl'),
15 | )
16 |
17 | vis_backends = [dict(type='LocalVisBackend')]
18 | visualizer = dict(
19 | type='DetLocalVisualizer', vis_backends=vis_backends, name='visualizer')
20 | log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)
21 |
22 | log_level = 'INFO'
23 | load_from = None
24 | resume = False
25 |
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/models/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/_base_/models/__init__.py
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/schedules/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/_base_/schedules/__init__.py
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/schedules/schedule_1x.py:
--------------------------------------------------------------------------------
1 | # training schedule for 1x
2 | train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=12, val_interval=1)
3 | val_cfg = dict(type='ValLoop')
4 | test_cfg = dict(type='TestLoop')
5 |
6 | # learning rate
7 | param_scheduler = [
8 | dict(
9 | type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, end=500),
10 | dict(
11 | type='MultiStepLR',
12 | begin=0,
13 | end=12,
14 | by_epoch=True,
15 | milestones=[8, 11],
16 | gamma=0.1)
17 | ]
18 |
19 | # optimizer
20 | optim_wrapper = dict(
21 | type='OptimWrapper',
22 | optimizer=dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001))
23 |
24 | # Default setting for scaling LR automatically
25 | # - `enable` means enable scaling LR automatically
26 | # or not by default.
27 | # - `base_batch_size` = (8 GPUs) x (2 samples per GPU).
28 | auto_scale_lr = dict(enable=False, base_batch_size=16)
29 |
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/schedules/schedule_20e.py:
--------------------------------------------------------------------------------
1 | # training schedule for 20e
2 | train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=20, val_interval=1)
3 | val_cfg = dict(type='ValLoop')
4 | test_cfg = dict(type='TestLoop')
5 |
6 | # learning rate
7 | param_scheduler = [
8 | dict(
9 | type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, end=500),
10 | dict(
11 | type='MultiStepLR',
12 | begin=0,
13 | end=20,
14 | by_epoch=True,
15 | milestones=[16, 19],
16 | gamma=0.1)
17 | ]
18 |
19 | # optimizer
20 | optim_wrapper = dict(
21 | type='OptimWrapper',
22 | optimizer=dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001))
23 |
24 | # Default setting for scaling LR automatically
25 | # - `enable` means enable scaling LR automatically
26 | # or not by default.
27 | # - `base_batch_size` = (8 GPUs) x (2 samples per GPU).
28 | auto_scale_lr = dict(enable=False, base_batch_size=16)
29 |
--------------------------------------------------------------------------------
/downstream/det/configs/_base_/schedules/schedule_2x.py:
--------------------------------------------------------------------------------
1 | # training schedule for 2x
2 | train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=24, val_interval=1)
3 | val_cfg = dict(type='ValLoop')
4 | test_cfg = dict(type='TestLoop')
5 |
6 | # learning rate
7 | param_scheduler = [
8 | dict(
9 | type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, end=500),
10 | dict(
11 | type='MultiStepLR',
12 | begin=0,
13 | end=24,
14 | by_epoch=True,
15 | milestones=[16, 22],
16 | gamma=0.1)
17 | ]
18 |
19 | # optimizer
20 | optim_wrapper = dict(
21 | type='OptimWrapper',
22 | optimizer=dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001))
23 |
24 | # Default setting for scaling LR automatically
25 | # - `enable` means enable scaling LR automatically
26 | # or not by default.
27 | # - `base_batch_size` = (8 GPUs) x (2 samples per GPU).
28 | auto_scale_lr = dict(enable=False, base_batch_size=16)
29 |
--------------------------------------------------------------------------------
/downstream/det/configs/mask_rcnn/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/mask_rcnn/__init__.py
--------------------------------------------------------------------------------
/downstream/det/configs/retinanet/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/retinanet/__init__.py
--------------------------------------------------------------------------------
/downstream/det/configs/retinanet/retinanet_tta.py:
--------------------------------------------------------------------------------
1 | tta_model = dict(
2 | type='DetTTAModel',
3 | tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.5), max_per_img=100))
4 |
5 | img_scales = [(1333, 800), (666, 400), (2000, 1200)]
6 | tta_pipeline = [
7 | dict(type='LoadImageFromFile', backend_args=None),
8 | dict(
9 | type='TestTimeAug',
10 | transforms=[[
11 | dict(type='Resize', scale=s, keep_ratio=True) for s in img_scales
12 | ], [
13 | dict(type='RandomFlip', prob=1.),
14 | dict(type='RandomFlip', prob=0.)
15 | ], [dict(type='LoadAnnotations', with_bbox=True)],
16 | [
17 | dict(
18 | type='PackDetInputs',
19 | meta_keys=('img_id', 'img_path', 'ori_shape',
20 | 'img_shape', 'scale_factor', 'flip',
21 | 'flip_direction'))
22 | ]])
23 | ]
24 |
--------------------------------------------------------------------------------
/downstream/det/configs/ssd/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/configs/ssd/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | import mmcv
3 | import mmengine
4 | from mmengine.utils import digit_version
5 |
6 | from .version import __version__, version_info
7 |
8 | mmcv_minimum_version = '2.0.0rc4'
9 | mmcv_maximum_version = '2.2.0'
10 | mmcv_version = digit_version(mmcv.__version__)
11 |
12 | mmengine_minimum_version = '0.7.1'
13 | mmengine_maximum_version = '1.0.0'
14 | mmengine_version = digit_version(mmengine.__version__)
15 |
16 | assert (mmcv_version >= digit_version(mmcv_minimum_version)
17 | and mmcv_version < digit_version(mmcv_maximum_version)), \
18 | f'MMCV=={mmcv.__version__} is used but incompatible. ' \
19 | f'Please install mmcv>={mmcv_minimum_version}, <{mmcv_maximum_version}.'
20 |
21 | assert (mmengine_version >= digit_version(mmengine_minimum_version)
22 | and mmengine_version < digit_version(mmengine_maximum_version)), \
23 | f'MMEngine=={mmengine.__version__} is used but incompatible. ' \
24 | f'Please install mmengine>={mmengine_minimum_version}, ' \
25 | f'<{mmengine_maximum_version}.'
26 |
27 | __all__ = ['__version__', 'version_info', 'digit_version']
28 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/apis/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .det_inferencer import DetInferencer
3 | from .inference import (async_inference_detector, inference_detector,
4 | inference_mot, init_detector, init_track_model)
5 |
6 | __all__ = [
7 | 'init_detector', 'async_inference_detector', 'inference_detector',
8 | 'DetInferencer', 'inference_mot', 'init_track_model'
9 | ]
10 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/_base_/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/_base_/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/_base_/datasets/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/_base_/datasets/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/_base_/default_runtime.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.hooks import (CheckpointHook, DistSamplerSeedHook, IterTimerHook,
3 | LoggerHook, ParamSchedulerHook)
4 | from mmengine.runner import LogProcessor
5 | from mmengine.visualization import LocalVisBackend
6 |
7 | from mmdet.engine.hooks import DetVisualizationHook
8 | from mmdet.visualization import DetLocalVisualizer
9 |
10 | default_scope = None
11 |
12 | default_hooks = dict(
13 | timer=dict(type=IterTimerHook),
14 | logger=dict(type=LoggerHook, interval=50),
15 | param_scheduler=dict(type=ParamSchedulerHook),
16 | checkpoint=dict(type=CheckpointHook, interval=1),
17 | sampler_seed=dict(type=DistSamplerSeedHook),
18 | visualization=dict(type=DetVisualizationHook))
19 |
20 | env_cfg = dict(
21 | cudnn_benchmark=False,
22 | mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
23 | dist_cfg=dict(backend='nccl'),
24 | )
25 |
26 | vis_backends = [dict(type=LocalVisBackend)]
27 | visualizer = dict(
28 | type=DetLocalVisualizer, vis_backends=vis_backends, name='visualizer')
29 | log_processor = dict(type=LogProcessor, window_size=50, by_epoch=True)
30 |
31 | log_level = 'INFO'
32 | load_from = None
33 | resume = False
34 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/_base_/models/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/_base_/models/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/_base_/schedules/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/_base_/schedules/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/_base_/schedules/schedule_1x.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.optim.optimizer.optimizer_wrapper import OptimWrapper
3 | from mmengine.optim.scheduler.lr_scheduler import LinearLR, MultiStepLR
4 | from mmengine.runner.loops import EpochBasedTrainLoop, TestLoop, ValLoop
5 | from torch.optim.sgd import SGD
6 |
7 | # training schedule for 1x
8 | train_cfg = dict(type=EpochBasedTrainLoop, max_epochs=12, val_interval=1)
9 | val_cfg = dict(type=ValLoop)
10 | test_cfg = dict(type=TestLoop)
11 |
12 | # learning rate
13 | param_scheduler = [
14 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500),
15 | dict(
16 | type=MultiStepLR,
17 | begin=0,
18 | end=12,
19 | by_epoch=True,
20 | milestones=[8, 11],
21 | gamma=0.1)
22 | ]
23 |
24 | # optimizer
25 | optim_wrapper = dict(
26 | type=OptimWrapper,
27 | optimizer=dict(type=SGD, lr=0.02, momentum=0.9, weight_decay=0.0001))
28 |
29 | # Default setting for scaling LR automatically
30 | # - `enable` means enable scaling LR automatically
31 | # or not by default.
32 | # - `base_batch_size` = (8 GPUs) x (2 samples per GPU).
33 | auto_scale_lr = dict(enable=False, base_batch_size=16)
34 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/_base_/schedules/schedule_2x.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.optim.optimizer.optimizer_wrapper import OptimWrapper
3 | from mmengine.optim.scheduler.lr_scheduler import LinearLR, MultiStepLR
4 | from mmengine.runner.loops import EpochBasedTrainLoop, TestLoop, ValLoop
5 | from torch.optim.sgd import SGD
6 |
7 | # training schedule for 1x
8 | train_cfg = dict(type=EpochBasedTrainLoop, max_epochs=24, val_interval=1)
9 | val_cfg = dict(type=ValLoop)
10 | test_cfg = dict(type=TestLoop)
11 |
12 | # learning rate
13 | param_scheduler = [
14 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500),
15 | dict(
16 | type=MultiStepLR,
17 | begin=0,
18 | end=24,
19 | by_epoch=True,
20 | milestones=[16, 22],
21 | gamma=0.1)
22 | ]
23 |
24 | # optimizer
25 | optim_wrapper = dict(
26 | type=OptimWrapper,
27 | optimizer=dict(type=SGD, lr=0.02, momentum=0.9, weight_decay=0.0001))
28 |
29 | # Default setting for scaling LR automatically
30 | # - `enable` means enable scaling LR automatically
31 | # or not by default.
32 | # - `base_batch_size` = (8 GPUs) x (2 samples per GPU).
33 | auto_scale_lr = dict(enable=False, base_batch_size=16)
34 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/cascade_rcnn/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/cascade_rcnn/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/cascade_rcnn/cascade_mask_rcnn_r50_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.datasets.coco_instance import *
11 | from .._base_.default_runtime import *
12 | from .._base_.models.cascade_mask_rcnn_r50_fpn import *
13 | from .._base_.schedules.schedule_1x import *
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.datasets.coco_detection import *
11 | from .._base_.default_runtime import *
12 | from .._base_.models.cascade_rcnn_r50_fpn import *
13 | from .._base_.schedules.schedule_1x import *
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/common/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/common/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/common/lsj_200e_coco_detection.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .lsj_100e_coco_detection import *
11 |
12 | # 8x25=200e
13 | train_dataloader.update(dict(dataset=dict(times=8)))
14 |
15 | # learning rate
16 | param_scheduler = [
17 | dict(type=LinearLR, start_factor=0.067, by_epoch=False, begin=0, end=1000),
18 | dict(
19 | type=MultiStepLR,
20 | begin=0,
21 | end=25,
22 | by_epoch=True,
23 | milestones=[22, 24],
24 | gamma=0.1)
25 | ]
26 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/common/lsj_200e_coco_instance.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .lsj_100e_coco_instance import *
11 |
12 | # 8x25=200e
13 | train_dataloader.update(dict(dataset=dict(times=8)))
14 |
15 | # learning rate
16 | param_scheduler = [
17 | dict(type=LinearLR, start_factor=0.067, by_epoch=False, begin=0, end=1000),
18 | dict(
19 | type=MultiStepLR,
20 | begin=0,
21 | end=25,
22 | by_epoch=True,
23 | milestones=[22, 24],
24 | gamma=0.1)
25 | ]
26 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/deformable_detr/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/deformable_detr/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/deformable_detr/deformable_detr_refine_r50_16xb2_50e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .deformable_detr_r50_16xb2_50e_coco import *
11 |
12 | model.update(dict(with_box_refine=True))
13 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/deformable_detr/deformable_detr_refine_twostage_r50_16xb2_50e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .deformable_detr_refine_r50_16xb2_50e_coco import *
11 |
12 | model.update(dict(as_two_stage=True))
13 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/detr/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/detr/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/detr/detr_r101_8xb2_500e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 | from mmengine.model.weight_init import PretrainedInit
4 |
5 | with read_base():
6 | from .detr_r50_8xb2_500e_coco import *
7 |
8 | model.update(
9 | dict(
10 | backbone=dict(
11 | depth=101,
12 | init_cfg=dict(
13 | type=PretrainedInit, checkpoint='torchvision://resnet101'))))
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/detr/detr_r18_8xb2_500e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 | from mmengine.model.weight_init import PretrainedInit
4 |
5 | with read_base():
6 | from .detr_r50_8xb2_500e_coco import *
7 |
8 | model.update(
9 | dict(
10 | backbone=dict(
11 | depth=18,
12 | init_cfg=dict(
13 | type=PretrainedInit, checkpoint='torchvision://resnet18')),
14 | neck=dict(in_channels=[512])))
15 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/detr/detr_r50_8xb2_500e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 | from mmengine.optim.scheduler.lr_scheduler import MultiStepLR
4 | from mmengine.runner.loops import EpochBasedTrainLoop
5 |
6 | with read_base():
7 | from .detr_r50_8xb2_150e_coco import *
8 |
9 | # learning policy
10 | max_epochs = 500
11 | train_cfg.update(
12 | type=EpochBasedTrainLoop, max_epochs=max_epochs, val_interval=10)
13 |
14 | param_scheduler = [
15 | dict(
16 | type=MultiStepLR,
17 | begin=0,
18 | end=max_epochs,
19 | by_epoch=True,
20 | milestones=[334],
21 | gamma=0.1)
22 | ]
23 |
24 | # only keep latest 2 checkpoints
25 | default_hooks.update(checkpoint=dict(max_keep_ckpts=2))
26 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/dino/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/dino/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/dino/dino_4scale_r50_8xb2_24e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 | from mmengine.runner.loops import EpochBasedTrainLoop
4 |
5 | with read_base():
6 | from .dino_4scale_r50_8xb2_12e_coco import *
7 |
8 | max_epochs = 24
9 | train_cfg.update(
10 | dict(type=EpochBasedTrainLoop, max_epochs=max_epochs, val_interval=1))
11 |
12 | param_scheduler[0].update(dict(milestones=[20]))
13 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/dino/dino_4scale_r50_8xb2_36e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 | from mmengine.runner.loops import EpochBasedTrainLoop
4 |
5 | with read_base():
6 | from .dino_4scale_r50_8xb2_12e_coco import *
7 |
8 | max_epochs = 36
9 | train_cfg.update(
10 | dict(type=EpochBasedTrainLoop, max_epochs=max_epochs, val_interval=1))
11 |
12 | param_scheduler[0].update(dict(milestones=[30]))
13 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/dino/dino_4scale_r50_improved_8xb2_12e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 |
4 | with read_base():
5 | from .dino_4scale_r50_8xb2_12e_coco import *
6 |
7 | # from deformable detr hyper
8 | model.update(
9 | dict(
10 | backbone=dict(frozen_stages=-1),
11 | bbox_head=dict(loss_cls=dict(loss_weight=2.0)),
12 | positional_encoding=dict(offset=-0.5, temperature=10000),
13 | dn_cfg=dict(group_cfg=dict(num_dn_queries=300))))
14 |
15 | # optimizer
16 | optim_wrapper.update(
17 | dict(
18 | optimizer=dict(lr=0.0002),
19 | paramwise_cfg=dict(
20 | custom_keys={
21 | 'backbone': dict(lr_mult=0.1),
22 | 'sampling_offsets': dict(lr_mult=0.1),
23 | 'reference_points': dict(lr_mult=0.1)
24 | })))
25 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/dino/dino_5scale_swin_l_8xb2_36e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 | from mmengine.runner.loops import EpochBasedTrainLoop
4 |
5 | with read_base():
6 | from .dino_5scale_swin_l_8xb2_12e_coco import *
7 |
8 | max_epochs = 36
9 | train_cfg.update(
10 | dict(type=EpochBasedTrainLoop, max_epochs=max_epochs, val_interval=1))
11 |
12 | param_scheduler[0].update(dict(milestones=[27, 33]))
13 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/faster_rcnn/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/faster_rcnn/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.datasets.coco_detection import *
11 | from .._base_.default_runtime import *
12 | from .._base_.models.faster_rcnn_r50_fpn import *
13 | from .._base_.schedules.schedule_1x import *
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/mask_rcnn/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r101_caffe_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r50_fpn_poly_1x_coco import *
11 |
12 | from mmengine.model.weight_init import PretrainedInit
13 |
14 | model = dict(
15 | backbone=dict(
16 | depth=101,
17 | init_cfg=dict(
18 | type=PretrainedInit,
19 | checkpoint='open-mmlab://detectron2/resnet101_caffe')))
20 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r101_caffe_fpn_ms_poly_3x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from ..common.ms_poly_3x_coco_instance import *
11 | from .._base_.models.mask_rcnn_r50_fpn import *
12 |
13 | from mmengine.model.weight_init import PretrainedInit
14 |
15 | model = dict(
16 | # use caffe img_norm
17 | data_preprocessor=dict(
18 | mean=[103.530, 116.280, 123.675],
19 | std=[1.0, 1.0, 1.0],
20 | bgr_to_rgb=False),
21 | backbone=dict(
22 | depth=101,
23 | norm_cfg=dict(requires_grad=False),
24 | norm_eval=True,
25 | style='caffe',
26 | init_cfg=dict(
27 | type=PretrainedInit,
28 | checkpoint='open-mmlab://detectron2/resnet101_caffe')))
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r101_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.models.mask_rcnn_r50_fpn import *
11 |
12 | from mmengine.model.weight_init import PretrainedInit
13 |
14 | model = dict(
15 | backbone=dict(
16 | depth=101,
17 | init_cfg=dict(
18 | type=PretrainedInit, checkpoint='torchvision://resnet101')))
19 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r101_fpn_2x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r50_fpn_2x_coco import *
11 |
12 | from mmengine.model.weight_init import PretrainedInit
13 |
14 | model = dict(
15 | backbone=dict(
16 | depth=101,
17 | init_cfg=dict(
18 | type=PretrainedInit, checkpoint='torchvision://resnet101')))
19 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r101_fpn_8xb8_amp_lsj_200e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r18_fpn_8xb8_amp_lsj_200e_coco import *
11 |
12 | from mmengine.model.weight_init import PretrainedInit
13 |
14 | model = dict(
15 | backbone=dict(
16 | depth=101,
17 | init_cfg=dict(
18 | type=PretrainedInit, checkpoint='torchvision://resnet101')))
19 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r101_fpn_ms_poly_3x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from ..common.ms_poly_3x_coco_instance import *
11 | from .._base_.models.mask_rcnn_r50_fpn import *
12 |
13 | from mmengine.model.weight_init import PretrainedInit
14 |
15 | model = dict(
16 | backbone=dict(
17 | depth=101,
18 | init_cfg=dict(
19 | type=PretrainedInit, checkpoint='torchvision://resnet101')))
20 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r18_fpn_8xb8_amp_lsj_200e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r50_fpn_8xb8_amp_lsj_200e_coco import *
11 |
12 | from mmengine.model.weight_init import PretrainedInit
13 |
14 | model = dict(
15 | backbone=dict(
16 | depth=18,
17 | init_cfg=dict(
18 | type=PretrainedInit, checkpoint='torchvision://resnet18')),
19 | neck=dict(in_channels=[64, 128, 256, 512]))
20 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_c4_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.datasets.coco_instance import *
11 | from .._base_.default_runtime import *
12 | from .._base_.models.mask_rcnn_r50_caffe_c4 import *
13 | from .._base_.schedules.schedule_1x import *
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r50_fpn_1x_coco import *
11 |
12 | from mmengine.model.weight_init import PretrainedInit
13 |
14 | model = dict(
15 | # use caffe img_norm
16 | data_preprocessor=dict(
17 | mean=[103.530, 116.280, 123.675],
18 | std=[1.0, 1.0, 1.0],
19 | bgr_to_rgb=False),
20 | backbone=dict(
21 | norm_cfg=dict(requires_grad=False),
22 | style='caffe',
23 | init_cfg=dict(
24 | type=PretrainedInit,
25 | checkpoint='open-mmlab://detectron2/resnet50_caffe')))
26 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_ms_poly_2x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r50_caffe_fpn_ms_poly_1x_coco import *
11 |
12 | train_cfg = dict(max_epochs=24)
13 | # learning rate
14 | param_scheduler = [
15 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500),
16 | dict(
17 | type=MultiStepLR,
18 | begin=0,
19 | end=24,
20 | by_epoch=True,
21 | milestones=[16, 22],
22 | gamma=0.1)
23 | ]
24 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_ms_poly_3x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r50_caffe_fpn_ms_poly_1x_coco import *
11 |
12 | train_cfg = dict(max_epochs=36)
13 | # learning rate
14 | param_scheduler = [
15 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500),
16 | dict(
17 | type=MultiStepLR,
18 | begin=0,
19 | end=24,
20 | by_epoch=True,
21 | milestones=[28, 34],
22 | gamma=0.1)
23 | ]
24 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.datasets.coco_instance import *
11 | from .._base_.default_runtime import *
12 | from .._base_.models.mask_rcnn_r50_fpn import *
13 | from .._base_.schedules.schedule_1x import *
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_wandb_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.datasets.coco_instance import *
11 | from .._base_.default_runtime import *
12 | from .._base_.models.mask_rcnn_r50_fpn import *
13 | from .._base_.schedules.schedule_1x import *
14 |
15 | from mmengine.visualization import LocalVisBackend, WandbVisBackend
16 |
17 | vis_backends.update(dict(type=WandbVisBackend))
18 | vis_backends.update(dict(type=LocalVisBackend))
19 | visualizer.update(dict(vis_backends=vis_backends))
20 |
21 | # MMEngine support the following two ways, users can choose
22 | # according to convenience
23 | # Copyright (c) OpenMMLab. All rights reserved.
24 |
25 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
26 | # mmcv >= 2.0.1
27 | # mmengine >= 0.8.0
28 |
29 | default_hooks.update(dict(checkpoint=dict(interval=4)))
30 |
31 | train_cfg.update(dict(val_interval=2))
32 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_2x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.datasets.coco_instance import *
11 | from .._base_.default_runtime import *
12 | from .._base_.models.mask_rcnn_r50_fpn import *
13 | from .._base_.schedules.schedule_2x import *
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_8xb8_amp_lsj_200e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_amp_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r50_fpn_1x_coco import *
11 |
12 | from mmengine.optim.optimizer.amp_optimizer_wrapper import AmpOptimWrapper
13 |
14 | optim_wrapper.update(dict(type=AmpOptimWrapper))
15 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_ms_poly_-3x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.models.mask_rcnn_r50_fpn import *
11 | from ..common.ms_poly_3x_coco_instance import *
12 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_poly_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.datasets.coco_instance import *
11 | from .._base_.default_runtime import *
12 | from .._base_.models.mask_rcnn_r50_fpn import *
13 | from .._base_.schedules.schedule_1x import *
14 |
15 | train_pipeline = [
16 | dict(type=LoadImageFromFile, backend_args=backend_args),
17 | dict(
18 | type=LoadAnnotations, with_bbox=True, with_mask=True, poly2mask=False),
19 | dict(type=Resize, scale=(1333, 800), keep_ratio=True),
20 | dict(type=RandomFlip, prob=0.5),
21 | dict(type=PackDetInputs),
22 | ]
23 | train_dataloader.update(dict(dataset=dict(pipeline=train_pipeline)))
24 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x4d_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r101_fpn_1x_coco import *
11 |
12 | from mmengine.model.weight_init import PretrainedInit
13 |
14 | from mmdet.models.backbones.resnext import ResNeXt
15 |
16 | model = dict(
17 | backbone=dict(
18 | type=ResNeXt,
19 | depth=101,
20 | groups=32,
21 | base_width=4,
22 | num_stages=4,
23 | out_indices=(0, 1, 2, 3),
24 | frozen_stages=1,
25 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True),
26 | style='pytorch',
27 | init_cfg=dict(
28 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_32x4d')))
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x4d_fpn_2x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_r50_fpn_2x_coco import *
11 |
12 | from mmengine.model.weight_init import PretrainedInit
13 |
14 | from mmdet.models import ResNeXt
15 |
16 | model = dict(
17 | backbone=dict(
18 | type=ResNeXt,
19 | depth=101,
20 | groups=32,
21 | base_width=4,
22 | num_stages=4,
23 | out_indices=(0, 1, 2, 3),
24 | frozen_stages=1,
25 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True),
26 | style='pytorch',
27 | init_cfg=dict(
28 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_32x4d')))
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x4d_fpn_ms_poly_3x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from ..common.ms_poly_3x_coco_instance import *
11 | from .._base_.models.mask_rcnn_r50_fpn import *
12 |
13 | from mmengine.model.weight_init import PretrainedInit
14 |
15 | from mmdet.models.backbones import ResNeXt
16 |
17 | model = dict(
18 | backbone=dict(
19 | type=ResNeXt,
20 | depth=101,
21 | groups=32,
22 | base_width=4,
23 | num_stages=4,
24 | out_indices=(0, 1, 2, 3),
25 | frozen_stages=1,
26 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True),
27 | style='pytorch',
28 | init_cfg=dict(
29 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_32x4d')))
30 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x8d_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_x101_32x4d_fpn_1x_coco import *
11 |
12 | model = dict(
13 | # ResNeXt-101-32x8d model trained with Caffe2 at FB,
14 | # so the mean and std need to be changed.
15 | data_preprocessor=dict(
16 | mean=[103.530, 116.280, 123.675],
17 | std=[57.375, 57.120, 58.395],
18 | bgr_to_rgb=False),
19 | backbone=dict(
20 | type=ResNeXt,
21 | depth=101,
22 | groups=32,
23 | base_width=8,
24 | num_stages=4,
25 | out_indices=(0, 1, 2, 3),
26 | frozen_stages=1,
27 | norm_cfg=dict(type=BatchNorm2d, requires_grad=False),
28 | style='pytorch',
29 | init_cfg=dict(
30 | type=PretrainedInit,
31 | checkpoint='open-mmlab://detectron2/resnext101_32x8d')))
32 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x8d_fpn_ms_poly_3x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from ..common.ms_poly_3x_coco_instance import *
11 | from .._base_.models.mask_rcnn_r50_fpn import *
12 |
13 | from mmdet.models.backbones import ResNeXt
14 |
15 | model = dict(
16 | # ResNeXt-101-32x8d model trained with Caffe2 at FB,
17 | # so the mean and std need to be changed.
18 | data_preprocessor=dict(
19 | mean=[103.530, 116.280, 123.675],
20 | std=[57.375, 57.120, 58.395],
21 | bgr_to_rgb=False),
22 | backbone=dict(
23 | type=ResNeXt,
24 | depth=101,
25 | groups=32,
26 | base_width=8,
27 | num_stages=4,
28 | out_indices=(0, 1, 2, 3),
29 | frozen_stages=1,
30 | norm_cfg=dict(type=BatchNorm2d, requires_grad=False),
31 | style='pytorch',
32 | init_cfg=dict(
33 | type=PretrainedInit,
34 | checkpoint='open-mmlab://detectron2/resnext101_32x8d')))
35 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_x101_64_4d_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_x101_32x4d_fpn_1x_coco import *
11 |
12 | model = dict(
13 | backbone=dict(
14 | type=ResNeXt,
15 | depth=101,
16 | groups=64,
17 | base_width=4,
18 | num_stages=4,
19 | out_indices=(0, 1, 2, 3),
20 | frozen_stages=1,
21 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True),
22 | style='pytorch',
23 | init_cfg=dict(
24 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_64x4d')))
25 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_x101_64x4d_fpn_2x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .mask_rcnn_x101_32x4d_fpn_2x_coco import *
11 |
12 | model = dict(
13 | backbone=dict(
14 | type=ResNeXt,
15 | depth=101,
16 | groups=64,
17 | base_width=4,
18 | num_stages=4,
19 | out_indices=(0, 1, 2, 3),
20 | frozen_stages=1,
21 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True),
22 | style='pytorch',
23 | init_cfg=dict(
24 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_64x4d')))
25 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/mask_rcnn/mask_rcnn_x101_64x4d_fpn_ms_poly_3x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from ..common.ms_poly_3x_coco_instance import *
11 | from .._base_.models.mask_rcnn_r50_fpn import *
12 |
13 | from mmdet.models.backbones import ResNeXt
14 |
15 | model = dict(
16 | backbone=dict(
17 | type=ResNeXt,
18 | depth=101,
19 | groups=64,
20 | base_width=4,
21 | num_stages=4,
22 | out_indices=(0, 1, 2, 3),
23 | frozen_stages=1,
24 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True),
25 | style='pytorch',
26 | init_cfg=dict(
27 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_64x4d')))
28 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/maskformer/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/maskformer/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/panoptic_fpn/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/panoptic_fpn/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/panoptic_fpn/panoptic_fpn_r101_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 | from mmengine.model.weight_init import PretrainedInit
4 |
5 | with read_base():
6 | from .panoptic_fpn_r50_fpn_1x_coco import *
7 |
8 | model.update(
9 | dict(
10 | backbone=dict(
11 | depth=101,
12 | init_cfg=dict(
13 | type=PretrainedInit, checkpoint='torchvision://resnet101'))))
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/panoptic_fpn/panoptic_fpn_r101_fpn_ms_3x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 | from mmengine.model.weight_init import PretrainedInit
4 |
5 | with read_base():
6 | from .panoptic_fpn_r50_fpn_ms_3x_coco import *
7 |
8 | model.update(
9 | dict(
10 | backbone=dict(
11 | depth=101,
12 | init_cfg=dict(
13 | type=PretrainedInit, checkpoint='torchvision://resnet101'))))
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/qdtrack/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/qdtrack/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/qdtrack/qdtrack_faster_rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import read_base
3 |
4 | with read_base():
5 | from .._base_.datasets.mot_challenge import *
6 | from .qdtrack_faster_rcnn_r50_fpn_4e_base import *
7 |
8 | from mmdet.evaluation import CocoVideoMetric, MOTChallengeMetric
9 |
10 | # evaluator
11 | val_evaluator = [
12 | dict(type=CocoVideoMetric, metric=['bbox'], classwise=True),
13 | dict(type=MOTChallengeMetric, metric=['HOTA', 'CLEAR', 'Identity'])
14 | ]
15 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/retinanet/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/retinanet/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/retinanet/retinanet_r50_fpn_1x_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .._base_.models.retinanet_r50_fpn import *
11 | from .._base_.datasets.coco_detection import *
12 | from .._base_.schedules.schedule_1x import *
13 | from .._base_.default_runtime import *
14 | from .retinanet_tta import *
15 |
16 | from torch.optim.sgd import SGD
17 |
18 | # optimizer
19 | optim_wrapper.update(
20 | dict(optimizer=dict(type=SGD, lr=0.01, momentum=0.9, weight_decay=0.0001)))
21 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/retinanet/retinanet_tta.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmcv.transforms.loading import LoadImageFromFile
3 | from mmcv.transforms.processing import TestTimeAug
4 |
5 | from mmdet.datasets.transforms.formatting import PackDetInputs
6 | from mmdet.datasets.transforms.loading import LoadAnnotations
7 | from mmdet.datasets.transforms.transforms import RandomFlip, Resize
8 | from mmdet.models.test_time_augs.det_tta import DetTTAModel
9 |
10 | tta_model = dict(
11 | type=DetTTAModel,
12 | tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.5), max_per_img=100))
13 |
14 | img_scales = [(1333, 800), (666, 400), (2000, 1200)]
15 | tta_pipeline = [
16 | dict(type=LoadImageFromFile, backend_args=None),
17 | dict(
18 | type=TestTimeAug,
19 | transforms=[
20 | [dict(type=Resize, scale=s, keep_ratio=True) for s in img_scales],
21 | [dict(type=RandomFlip, prob=1.),
22 | dict(type=RandomFlip, prob=0.)],
23 | [dict(type=LoadAnnotations, with_bbox=True)],
24 | [
25 | dict(
26 | type=PackDetInputs,
27 | meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
28 | 'scale_factor', 'flip', 'flip_direction'))
29 | ]
30 | ])
31 | ]
32 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/rtmdet/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/mmdet/configs/rtmdet/__init__.py
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/rtmdet/rtmdet_ins_m_8xb32_300e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .rtmdet_ins_l_8xb32_300e_coco import *
11 |
12 | model.update(
13 | dict(
14 | backbone=dict(deepen_factor=0.67, widen_factor=0.75),
15 | neck=dict(
16 | in_channels=[192, 384, 768], out_channels=192, num_csp_blocks=2),
17 | bbox_head=dict(in_channels=192, feat_channels=192)))
18 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/rtmdet/rtmdet_ins_x_8xb16_300e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .rtmdet_ins_l_8xb32_300e_coco import *
11 | from mmengine.optim.scheduler.lr_scheduler import CosineAnnealingLR, LinearLR
12 |
13 | model.update(
14 | dict(
15 | backbone=dict(deepen_factor=1.33, widen_factor=1.25),
16 | neck=dict(
17 | in_channels=[320, 640, 1280], out_channels=320, num_csp_blocks=4),
18 | bbox_head=dict(in_channels=320, feat_channels=320)))
19 |
20 | base_lr = 0.002
21 |
22 | # optimizer
23 | optim_wrapper.update(dict(optimizer=dict(lr=base_lr)))
24 |
25 | # learning rate
26 | param_scheduler = [
27 | dict(
28 | type=LinearLR, start_factor=1.0e-5, by_epoch=False, begin=0, end=1000),
29 | dict(
30 | # use cosine lr from 150 to 300 epoch
31 | type=CosineAnnealingLR,
32 | eta_min=base_lr * 0.05,
33 | begin=max_epochs // 2,
34 | end=max_epochs,
35 | T_max=max_epochs // 2,
36 | by_epoch=True,
37 | convert_to_iter_based=True),
38 | ]
39 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/rtmdet/rtmdet_m_8xb32_300e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .rtmdet_l_8xb32_300e_coco import *
11 |
12 | model.update(
13 | dict(
14 | backbone=dict(deepen_factor=0.67, widen_factor=0.75),
15 | neck=dict(
16 | in_channels=[192, 384, 768], out_channels=192, num_csp_blocks=2),
17 | bbox_head=dict(in_channels=192, feat_channels=192)))
18 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/configs/rtmdet/rtmdet_x_8xb32_300e_coco.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa
4 | # mmcv >= 2.0.1
5 | # mmengine >= 0.8.0
6 |
7 | from mmengine.config import read_base
8 |
9 | with read_base():
10 | from .rtmdet_l_8xb32_300e_coco import *
11 |
12 | model.update(
13 | dict(
14 | backbone=dict(deepen_factor=1.33, widen_factor=1.25),
15 | neck=dict(
16 | in_channels=[320, 640, 1280], out_channels=320, num_csp_blocks=4),
17 | bbox_head=dict(in_channels=320, feat_channels=320)))
18 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/datasets/api_wrappers/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .coco_api import COCO, COCOeval, COCOPanoptic
3 | from .cocoeval_mp import COCOevalMP
4 |
5 | __all__ = ['COCO', 'COCOeval', 'COCOPanoptic', 'COCOevalMP']
6 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/datasets/coco_caption.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from pathlib import Path
3 | from typing import List
4 |
5 | import mmengine
6 | from mmengine.dataset import BaseDataset
7 | from mmengine.fileio import get_file_backend
8 |
9 | from mmdet.registry import DATASETS
10 |
11 |
12 | @DATASETS.register_module()
13 | class CocoCaptionDataset(BaseDataset):
14 | """COCO2014 Caption dataset."""
15 |
16 | def load_data_list(self) -> List[dict]:
17 | """Load data list."""
18 | img_prefix = self.data_prefix['img_path']
19 | annotations = mmengine.load(self.ann_file)
20 | file_backend = get_file_backend(img_prefix)
21 |
22 | data_list = []
23 | for ann in annotations:
24 | data_info = {
25 | 'img_id': Path(ann['image']).stem.split('_')[-1],
26 | 'img_path': file_backend.join_path(img_prefix, ann['image']),
27 | 'gt_caption': ann['caption'],
28 | }
29 |
30 | data_list.append(data_info)
31 |
32 | return data_list
33 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/datasets/deepfashion.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import DATASETS
3 | from .coco import CocoDataset
4 |
5 |
6 | @DATASETS.register_module()
7 | class DeepFashionDataset(CocoDataset):
8 | """Dataset for DeepFashion."""
9 |
10 | METAINFO = {
11 | 'classes': ('top', 'skirt', 'leggings', 'dress', 'outer', 'pants',
12 | 'bag', 'neckwear', 'headwear', 'eyeglass', 'belt',
13 | 'footwear', 'hair', 'skin', 'face'),
14 | # palette is a list of color tuples, which is used for visualization.
15 | 'palette': [(0, 192, 64), (0, 64, 96), (128, 192, 192), (0, 64, 64),
16 | (0, 192, 224), (0, 192, 192), (128, 192, 64), (0, 192, 96),
17 | (128, 32, 192), (0, 0, 224), (0, 0, 64), (0, 160, 192),
18 | (128, 0, 96), (128, 0, 192), (0, 32, 192)]
19 | }
20 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/datasets/isaid.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import DATASETS
3 | from .coco import CocoDataset
4 |
5 |
6 | @DATASETS.register_module()
7 | class iSAIDDataset(CocoDataset):
8 | """Dataset for iSAID instance segmentation.
9 |
10 | iSAID: A Large-scale Dataset for Instance Segmentation
11 | in Aerial Images.
12 |
13 | For more detail, please refer to "projects/iSAID/README.md"
14 | """
15 |
16 | METAINFO = dict(
17 | classes=('background', 'ship', 'store_tank', 'baseball_diamond',
18 | 'tennis_court', 'basketball_court', 'Ground_Track_Field',
19 | 'Bridge', 'Large_Vehicle', 'Small_Vehicle', 'Helicopter',
20 | 'Swimming_pool', 'Roundabout', 'Soccer_ball_field', 'plane',
21 | 'Harbor'),
22 | palette=[(0, 0, 0), (0, 0, 63), (0, 63, 63), (0, 63, 0), (0, 63, 127),
23 | (0, 63, 191), (0, 63, 255), (0, 127, 63), (0, 127, 127),
24 | (0, 0, 127), (0, 0, 191), (0, 0, 255), (0, 191, 127),
25 | (0, 127, 191), (0, 127, 255), (0, 100, 155)])
26 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/datasets/samplers/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .batch_sampler import (AspectRatioBatchSampler,
3 | MultiDataAspectRatioBatchSampler,
4 | TrackAspectRatioBatchSampler)
5 | from .class_aware_sampler import ClassAwareSampler
6 | from .custom_sample_size_sampler import CustomSampleSizeSampler
7 | from .multi_data_sampler import MultiDataSampler
8 | from .multi_source_sampler import GroupMultiSourceSampler, MultiSourceSampler
9 | from .track_img_sampler import TrackImgSampler
10 |
11 | __all__ = [
12 | 'ClassAwareSampler', 'AspectRatioBatchSampler', 'MultiSourceSampler',
13 | 'GroupMultiSourceSampler', 'TrackImgSampler',
14 | 'TrackAspectRatioBatchSampler', 'MultiDataSampler',
15 | 'MultiDataAspectRatioBatchSampler', 'CustomSampleSizeSampler'
16 | ]
17 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/datasets/v3det.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | import os.path
3 | from typing import Optional
4 |
5 | import mmengine
6 |
7 | from mmdet.registry import DATASETS
8 | from .coco import CocoDataset
9 |
10 |
11 | @DATASETS.register_module()
12 | class V3DetDataset(CocoDataset):
13 | """Dataset for V3Det."""
14 |
15 | METAINFO = {
16 | 'classes': None,
17 | 'palette': None,
18 | }
19 |
20 | def __init__(
21 | self,
22 | *args,
23 | metainfo: Optional[dict] = None,
24 | data_root: str = '',
25 | label_file='annotations/category_name_13204_v3det_2023_v1.txt', # noqa
26 | **kwargs) -> None:
27 | class_names = tuple(
28 | mmengine.list_from_file(os.path.join(data_root, label_file)))
29 | if metainfo is None:
30 | metainfo = {'classes': class_names}
31 | super().__init__(
32 | *args, data_root=data_root, metainfo=metainfo, **kwargs)
33 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/engine/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .hooks import * # noqa: F401, F403
3 | from .optimizers import * # noqa: F401, F403
4 | from .runner import * # noqa: F401, F403
5 | from .schedulers import * # noqa: F401, F403
6 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/engine/hooks/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .checkloss_hook import CheckInvalidLossHook
3 | from .mean_teacher_hook import MeanTeacherHook
4 | from .memory_profiler_hook import MemoryProfilerHook
5 | from .num_class_check_hook import NumClassCheckHook
6 | from .pipeline_switch_hook import PipelineSwitchHook
7 | from .set_epoch_info_hook import SetEpochInfoHook
8 | from .sync_norm_hook import SyncNormHook
9 | from .utils import trigger_visualization_hook
10 | from .visualization_hook import (DetVisualizationHook,
11 | GroundingVisualizationHook,
12 | TrackVisualizationHook)
13 | from .yolox_mode_switch_hook import YOLOXModeSwitchHook
14 |
15 | __all__ = [
16 | 'YOLOXModeSwitchHook', 'SyncNormHook', 'CheckInvalidLossHook',
17 | 'SetEpochInfoHook', 'MemoryProfilerHook', 'DetVisualizationHook',
18 | 'NumClassCheckHook', 'MeanTeacherHook', 'trigger_visualization_hook',
19 | 'PipelineSwitchHook', 'TrackVisualizationHook',
20 | 'GroundingVisualizationHook'
21 | ]
22 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/engine/hooks/set_epoch_info_hook.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.hooks import Hook
3 | from mmengine.model.wrappers import is_model_wrapper
4 |
5 | from mmdet.registry import HOOKS
6 |
7 |
8 | @HOOKS.register_module()
9 | class SetEpochInfoHook(Hook):
10 | """Set runner's epoch information to the model."""
11 |
12 | def before_train_epoch(self, runner):
13 | epoch = runner.epoch
14 | model = runner.model
15 | if is_model_wrapper(model):
16 | model = model.module
17 | model.set_epoch(epoch)
18 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/engine/hooks/sync_norm_hook.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from collections import OrderedDict
3 |
4 | from mmengine.dist import get_dist_info
5 | from mmengine.hooks import Hook
6 | from torch import nn
7 |
8 | from mmdet.registry import HOOKS
9 | from mmdet.utils import all_reduce_dict
10 |
11 |
12 | def get_norm_states(module: nn.Module) -> OrderedDict:
13 | """Get the state_dict of batch norms in the module."""
14 | async_norm_states = OrderedDict()
15 | for name, child in module.named_modules():
16 | if isinstance(child, nn.modules.batchnorm._NormBase):
17 | for k, v in child.state_dict().items():
18 | async_norm_states['.'.join([name, k])] = v
19 | return async_norm_states
20 |
21 |
22 | @HOOKS.register_module()
23 | class SyncNormHook(Hook):
24 | """Synchronize Norm states before validation, currently used in YOLOX."""
25 |
26 | def before_val_epoch(self, runner):
27 | """Synchronizing norm."""
28 | module = runner.model
29 | _, world_size = get_dist_info()
30 | if world_size == 1:
31 | return
32 | norm_states = get_norm_states(module)
33 | if len(norm_states) == 0:
34 | return
35 | # TODO: use `all_reduce_dict` in mmengine
36 | norm_states = all_reduce_dict(norm_states, op='mean')
37 | module.load_state_dict(norm_states, strict=False)
38 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/engine/hooks/utils.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | def trigger_visualization_hook(cfg, args):
3 | default_hooks = cfg.default_hooks
4 | if 'visualization' in default_hooks:
5 | visualization_hook = default_hooks['visualization']
6 | # Turn on visualization
7 | visualization_hook['draw'] = True
8 | if args.show:
9 | visualization_hook['show'] = True
10 | visualization_hook['wait_time'] = args.wait_time
11 | if args.show_dir:
12 | visualization_hook['test_out_dir'] = args.show_dir
13 | else:
14 | raise RuntimeError(
15 | 'VisualizationHook must be included in default_hooks.'
16 | 'refer to usage '
17 | '"visualization=dict(type=\'VisualizationHook\')"')
18 |
19 | return cfg
20 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/engine/optimizers/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .layer_decay_optimizer_constructor import \
3 | LearningRateDecayOptimizerConstructor
4 |
5 | __all__ = ['LearningRateDecayOptimizerConstructor']
6 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/engine/runner/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .loops import TeacherStudentValLoop
3 |
4 | __all__ = ['TeacherStudentValLoop']
5 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/engine/schedulers/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .quadratic_warmup import (QuadraticWarmupLR, QuadraticWarmupMomentum,
3 | QuadraticWarmupParamScheduler)
4 |
5 | __all__ = [
6 | 'QuadraticWarmupParamScheduler', 'QuadraticWarmupMomentum',
7 | 'QuadraticWarmupLR'
8 | ]
9 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/evaluation/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .evaluator import * # noqa: F401,F403
3 | from .functional import * # noqa: F401,F403
4 | from .metrics import * # noqa: F401,F403
5 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/evaluation/evaluator/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .multi_datasets_evaluator import MultiDatasetsEvaluator
3 |
4 | __all__ = ['MultiDatasetsEvaluator']
5 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .backbones import * # noqa: F401,F403
3 | from .data_preprocessors import * # noqa: F401,F403
4 | from .dense_heads import * # noqa: F401,F403
5 | from .detectors import * # noqa: F401,F403
6 | from .language_models import * # noqa: F401,F403
7 | from .layers import * # noqa: F401,F403
8 | from .losses import * # noqa: F401,F403
9 | from .mot import * # noqa: F401,F403
10 | from .necks import * # noqa: F401,F403
11 | from .reid import * # noqa: F401,F403
12 | from .roi_heads import * # noqa: F401,F403
13 | from .seg_heads import * # noqa: F401,F403
14 | from .task_modules import * # noqa: F401,F403
15 | from .test_time_augs import * # noqa: F401,F403
16 | from .trackers import * # noqa: F401,F403
17 | from .tracking_heads import * # noqa: F401,F403
18 | from .vis import * # noqa: F401,F403
19 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/backbones/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .csp_darknet import CSPDarknet
3 | from .cspnext import CSPNeXt
4 | from .darknet import Darknet
5 | from .detectors_resnet import DetectoRS_ResNet
6 | from .detectors_resnext import DetectoRS_ResNeXt
7 | from .efficientnet import EfficientNet
8 | from .hourglass import HourglassNet
9 | from .hrnet import HRNet
10 | from .mobilenet_v2 import MobileNetV2
11 | from .pvt import PyramidVisionTransformer, PyramidVisionTransformerV2
12 | from .regnet import RegNet
13 | from .res2net import Res2Net
14 | from .resnest import ResNeSt
15 | from .resnet import ResNet, ResNetV1d
16 | from .resnext import ResNeXt
17 | from .ssd_vgg import SSDVGG
18 | from .swin import SwinTransformer
19 | from .trident_resnet import TridentResNet
20 |
21 | __all__ = [
22 | 'RegNet', 'ResNet', 'ResNetV1d', 'ResNeXt', 'SSDVGG', 'HRNet',
23 | 'MobileNetV2', 'Res2Net', 'HourglassNet', 'DetectoRS_ResNet',
24 | 'DetectoRS_ResNeXt', 'Darknet', 'ResNeSt', 'TridentResNet', 'CSPDarknet',
25 | 'SwinTransformer', 'PyramidVisionTransformer',
26 | 'PyramidVisionTransformerV2', 'EfficientNet', 'CSPNeXt'
27 | ]
28 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/data_preprocessors/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .data_preprocessor import (BatchFixedSizePad, BatchResize,
3 | BatchSyncRandomResize, BoxInstDataPreprocessor,
4 | DetDataPreprocessor,
5 | MultiBranchDataPreprocessor)
6 | from .reid_data_preprocessor import ReIDDataPreprocessor
7 | from .track_data_preprocessor import TrackDataPreprocessor
8 |
9 | __all__ = [
10 | 'DetDataPreprocessor', 'BatchSyncRandomResize', 'BatchFixedSizePad',
11 | 'MultiBranchDataPreprocessor', 'BatchResize', 'BoxInstDataPreprocessor',
12 | 'TrackDataPreprocessor', 'ReIDDataPreprocessor'
13 | ]
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/boxinst.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor
5 |
6 |
7 | @MODELS.register_module()
8 | class BoxInst(SingleStageInstanceSegmentor):
9 | """Implementation of `BoxInst `_"""
10 |
11 | def __init__(self,
12 | backbone: ConfigType,
13 | neck: ConfigType,
14 | bbox_head: ConfigType,
15 | mask_head: ConfigType,
16 | train_cfg: OptConfigType = None,
17 | test_cfg: OptConfigType = None,
18 | data_preprocessor: OptConfigType = None,
19 | init_cfg: OptMultiConfig = None) -> None:
20 | super().__init__(
21 | backbone=backbone,
22 | neck=neck,
23 | bbox_head=bbox_head,
24 | mask_head=mask_head,
25 | train_cfg=train_cfg,
26 | test_cfg=test_cfg,
27 | data_preprocessor=data_preprocessor,
28 | init_cfg=init_cfg)
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/cascade_rcnn.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .two_stage import TwoStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class CascadeRCNN(TwoStageDetector):
9 | r"""Implementation of `Cascade R-CNN: Delving into High Quality Object
10 | Detection `_"""
11 |
12 | def __init__(self,
13 | backbone: ConfigType,
14 | neck: OptConfigType = None,
15 | rpn_head: OptConfigType = None,
16 | roi_head: OptConfigType = None,
17 | train_cfg: OptConfigType = None,
18 | test_cfg: OptConfigType = None,
19 | data_preprocessor: OptConfigType = None,
20 | init_cfg: OptMultiConfig = None) -> None:
21 | super().__init__(
22 | backbone=backbone,
23 | neck=neck,
24 | rpn_head=rpn_head,
25 | roi_head=roi_head,
26 | train_cfg=train_cfg,
27 | test_cfg=test_cfg,
28 | data_preprocessor=data_preprocessor,
29 | init_cfg=init_cfg)
30 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/centernet.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage import SingleStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class CenterNet(SingleStageDetector):
9 | """Implementation of CenterNet(Objects as Points)
10 |
11 | .
12 | """
13 |
14 | def __init__(self,
15 | backbone: ConfigType,
16 | neck: ConfigType,
17 | bbox_head: ConfigType,
18 | train_cfg: OptConfigType = None,
19 | test_cfg: OptConfigType = None,
20 | data_preprocessor: OptConfigType = None,
21 | init_cfg: OptMultiConfig = None) -> None:
22 | super().__init__(
23 | backbone=backbone,
24 | neck=neck,
25 | bbox_head=bbox_head,
26 | train_cfg=train_cfg,
27 | test_cfg=test_cfg,
28 | data_preprocessor=data_preprocessor,
29 | init_cfg=init_cfg)
30 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/condinst.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor
5 |
6 |
7 | @MODELS.register_module()
8 | class CondInst(SingleStageInstanceSegmentor):
9 | """Implementation of `CondInst `_"""
10 |
11 | def __init__(self,
12 | backbone: ConfigType,
13 | neck: ConfigType,
14 | bbox_head: ConfigType,
15 | mask_head: ConfigType,
16 | train_cfg: OptConfigType = None,
17 | test_cfg: OptConfigType = None,
18 | data_preprocessor: OptConfigType = None,
19 | init_cfg: OptMultiConfig = None) -> None:
20 | super().__init__(
21 | backbone=backbone,
22 | neck=neck,
23 | bbox_head=bbox_head,
24 | mask_head=mask_head,
25 | train_cfg=train_cfg,
26 | test_cfg=test_cfg,
27 | data_preprocessor=data_preprocessor,
28 | init_cfg=init_cfg)
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/cornernet.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage import SingleStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class CornerNet(SingleStageDetector):
9 | """CornerNet.
10 |
11 | This detector is the implementation of the paper `CornerNet: Detecting
12 | Objects as Paired Keypoints `_ .
13 | """
14 |
15 | def __init__(self,
16 | backbone: ConfigType,
17 | neck: ConfigType,
18 | bbox_head: ConfigType,
19 | train_cfg: OptConfigType = None,
20 | test_cfg: OptConfigType = None,
21 | data_preprocessor: OptConfigType = None,
22 | init_cfg: OptMultiConfig = None) -> None:
23 | super().__init__(
24 | backbone=backbone,
25 | neck=neck,
26 | bbox_head=bbox_head,
27 | train_cfg=train_cfg,
28 | test_cfg=test_cfg,
29 | data_preprocessor=data_preprocessor,
30 | init_cfg=init_cfg)
31 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/fast_rcnn.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .two_stage import TwoStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class FastRCNN(TwoStageDetector):
9 | """Implementation of `Fast R-CNN `_"""
10 |
11 | def __init__(self,
12 | backbone: ConfigType,
13 | roi_head: ConfigType,
14 | train_cfg: ConfigType,
15 | test_cfg: ConfigType,
16 | neck: OptConfigType = None,
17 | data_preprocessor: OptConfigType = None,
18 | init_cfg: OptMultiConfig = None) -> None:
19 | super().__init__(
20 | backbone=backbone,
21 | neck=neck,
22 | roi_head=roi_head,
23 | train_cfg=train_cfg,
24 | test_cfg=test_cfg,
25 | init_cfg=init_cfg,
26 | data_preprocessor=data_preprocessor)
27 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/faster_rcnn.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .two_stage import TwoStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class FasterRCNN(TwoStageDetector):
9 | """Implementation of `Faster R-CNN `_"""
10 |
11 | def __init__(self,
12 | backbone: ConfigType,
13 | rpn_head: ConfigType,
14 | roi_head: ConfigType,
15 | train_cfg: ConfigType,
16 | test_cfg: ConfigType,
17 | neck: OptConfigType = None,
18 | data_preprocessor: OptConfigType = None,
19 | init_cfg: OptMultiConfig = None) -> None:
20 | super().__init__(
21 | backbone=backbone,
22 | neck=neck,
23 | rpn_head=rpn_head,
24 | roi_head=roi_head,
25 | train_cfg=train_cfg,
26 | test_cfg=test_cfg,
27 | init_cfg=init_cfg,
28 | data_preprocessor=data_preprocessor)
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/fsaf.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage import SingleStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class FSAF(SingleStageDetector):
9 | """Implementation of `FSAF `_"""
10 |
11 | def __init__(self,
12 | backbone: ConfigType,
13 | neck: ConfigType,
14 | bbox_head: ConfigType,
15 | train_cfg: OptConfigType = None,
16 | test_cfg: OptConfigType = None,
17 | data_preprocessor: OptConfigType = None,
18 | init_cfg: OptMultiConfig = None):
19 | super().__init__(
20 | backbone=backbone,
21 | neck=neck,
22 | bbox_head=bbox_head,
23 | train_cfg=train_cfg,
24 | test_cfg=test_cfg,
25 | data_preprocessor=data_preprocessor,
26 | init_cfg=init_cfg)
27 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/grid_rcnn.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .two_stage import TwoStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class GridRCNN(TwoStageDetector):
9 | """Grid R-CNN.
10 |
11 | This detector is the implementation of:
12 | - Grid R-CNN (https://arxiv.org/abs/1811.12030)
13 | - Grid R-CNN Plus: Faster and Better (https://arxiv.org/abs/1906.05688)
14 | """
15 |
16 | def __init__(self,
17 | backbone: ConfigType,
18 | rpn_head: ConfigType,
19 | roi_head: ConfigType,
20 | train_cfg: ConfigType,
21 | test_cfg: ConfigType,
22 | neck: OptConfigType = None,
23 | data_preprocessor: OptConfigType = None,
24 | init_cfg: OptMultiConfig = None) -> None:
25 | super().__init__(
26 | backbone=backbone,
27 | neck=neck,
28 | rpn_head=rpn_head,
29 | roi_head=roi_head,
30 | train_cfg=train_cfg,
31 | test_cfg=test_cfg,
32 | data_preprocessor=data_preprocessor,
33 | init_cfg=init_cfg)
34 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/htc.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from .cascade_rcnn import CascadeRCNN
4 |
5 |
6 | @MODELS.register_module()
7 | class HybridTaskCascade(CascadeRCNN):
8 | """Implementation of `HTC `_"""
9 |
10 | def __init__(self, **kwargs) -> None:
11 | super().__init__(**kwargs)
12 |
13 | @property
14 | def with_semantic(self) -> bool:
15 | """bool: whether the detector has a semantic head"""
16 | return self.roi_head.with_semantic
17 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/mask2former.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .maskformer import MaskFormer
5 |
6 |
7 | @MODELS.register_module()
8 | class Mask2Former(MaskFormer):
9 | r"""Implementation of `Masked-attention Mask
10 | Transformer for Universal Image Segmentation
11 | `_."""
12 |
13 | def __init__(self,
14 | backbone: ConfigType,
15 | neck: OptConfigType = None,
16 | panoptic_head: OptConfigType = None,
17 | panoptic_fusion_head: OptConfigType = None,
18 | train_cfg: OptConfigType = None,
19 | test_cfg: OptConfigType = None,
20 | data_preprocessor: OptConfigType = None,
21 | init_cfg: OptMultiConfig = None):
22 | super().__init__(
23 | backbone=backbone,
24 | neck=neck,
25 | panoptic_head=panoptic_head,
26 | panoptic_fusion_head=panoptic_fusion_head,
27 | train_cfg=train_cfg,
28 | test_cfg=test_cfg,
29 | data_preprocessor=data_preprocessor,
30 | init_cfg=init_cfg)
31 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/mask_rcnn.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import ConfigDict
3 |
4 | from mmdet.registry import MODELS
5 | from mmdet.utils import OptConfigType, OptMultiConfig
6 | from .two_stage import TwoStageDetector
7 |
8 |
9 | @MODELS.register_module()
10 | class MaskRCNN(TwoStageDetector):
11 | """Implementation of `Mask R-CNN `_"""
12 |
13 | def __init__(self,
14 | backbone: ConfigDict,
15 | rpn_head: ConfigDict,
16 | roi_head: ConfigDict,
17 | train_cfg: ConfigDict,
18 | test_cfg: ConfigDict,
19 | neck: OptConfigType = None,
20 | data_preprocessor: OptConfigType = None,
21 | init_cfg: OptMultiConfig = None) -> None:
22 | super().__init__(
23 | backbone=backbone,
24 | neck=neck,
25 | rpn_head=rpn_head,
26 | roi_head=roi_head,
27 | train_cfg=train_cfg,
28 | test_cfg=test_cfg,
29 | init_cfg=init_cfg,
30 | data_preprocessor=data_preprocessor)
31 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/mask_scoring_rcnn.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .two_stage import TwoStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class MaskScoringRCNN(TwoStageDetector):
9 | """Mask Scoring RCNN.
10 |
11 | https://arxiv.org/abs/1903.00241
12 | """
13 |
14 | def __init__(self,
15 | backbone: ConfigType,
16 | rpn_head: ConfigType,
17 | roi_head: ConfigType,
18 | train_cfg: ConfigType,
19 | test_cfg: ConfigType,
20 | neck: OptConfigType = None,
21 | data_preprocessor: OptConfigType = None,
22 | init_cfg: OptMultiConfig = None) -> None:
23 | super().__init__(
24 | backbone=backbone,
25 | neck=neck,
26 | rpn_head=rpn_head,
27 | roi_head=roi_head,
28 | train_cfg=train_cfg,
29 | test_cfg=test_cfg,
30 | data_preprocessor=data_preprocessor,
31 | init_cfg=init_cfg)
32 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/point_rend.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.config import ConfigDict
3 |
4 | from mmdet.registry import MODELS
5 | from mmdet.utils import OptConfigType, OptMultiConfig
6 | from .two_stage import TwoStageDetector
7 |
8 |
9 | @MODELS.register_module()
10 | class PointRend(TwoStageDetector):
11 | """PointRend: Image Segmentation as Rendering
12 |
13 | This detector is the implementation of
14 | `PointRend `_.
15 |
16 | """
17 |
18 | def __init__(self,
19 | backbone: ConfigDict,
20 | rpn_head: ConfigDict,
21 | roi_head: ConfigDict,
22 | train_cfg: ConfigDict,
23 | test_cfg: ConfigDict,
24 | neck: OptConfigType = None,
25 | data_preprocessor: OptConfigType = None,
26 | init_cfg: OptMultiConfig = None) -> None:
27 | super().__init__(
28 | backbone=backbone,
29 | neck=neck,
30 | rpn_head=rpn_head,
31 | roi_head=roi_head,
32 | train_cfg=train_cfg,
33 | test_cfg=test_cfg,
34 | init_cfg=init_cfg,
35 | data_preprocessor=data_preprocessor)
36 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/queryinst.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .sparse_rcnn import SparseRCNN
5 |
6 |
7 | @MODELS.register_module()
8 | class QueryInst(SparseRCNN):
9 | r"""Implementation of
10 | `Instances as Queries `_"""
11 |
12 | def __init__(self,
13 | backbone: ConfigType,
14 | rpn_head: ConfigType,
15 | roi_head: ConfigType,
16 | train_cfg: ConfigType,
17 | test_cfg: ConfigType,
18 | neck: OptConfigType = None,
19 | data_preprocessor: OptConfigType = None,
20 | init_cfg: OptMultiConfig = None) -> None:
21 | super().__init__(
22 | backbone=backbone,
23 | neck=neck,
24 | rpn_head=rpn_head,
25 | roi_head=roi_head,
26 | train_cfg=train_cfg,
27 | test_cfg=test_cfg,
28 | data_preprocessor=data_preprocessor,
29 | init_cfg=init_cfg)
30 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/reppoints_detector.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage import SingleStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class RepPointsDetector(SingleStageDetector):
9 | """RepPoints: Point Set Representation for Object Detection.
10 |
11 | This detector is the implementation of:
12 | - RepPoints detector (https://arxiv.org/pdf/1904.11490)
13 | """
14 |
15 | def __init__(self,
16 | backbone: ConfigType,
17 | neck: ConfigType,
18 | bbox_head: ConfigType,
19 | train_cfg: OptConfigType = None,
20 | test_cfg: OptConfigType = None,
21 | data_preprocessor: OptConfigType = None,
22 | init_cfg: OptMultiConfig = None):
23 | super().__init__(
24 | backbone=backbone,
25 | neck=neck,
26 | bbox_head=bbox_head,
27 | train_cfg=train_cfg,
28 | test_cfg=test_cfg,
29 | data_preprocessor=data_preprocessor,
30 | init_cfg=init_cfg)
31 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/retinanet.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage import SingleStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class RetinaNet(SingleStageDetector):
9 | """Implementation of `RetinaNet `_"""
10 |
11 | def __init__(self,
12 | backbone: ConfigType,
13 | neck: ConfigType,
14 | bbox_head: ConfigType,
15 | train_cfg: OptConfigType = None,
16 | test_cfg: OptConfigType = None,
17 | data_preprocessor: OptConfigType = None,
18 | init_cfg: OptMultiConfig = None) -> None:
19 | super().__init__(
20 | backbone=backbone,
21 | neck=neck,
22 | bbox_head=bbox_head,
23 | train_cfg=train_cfg,
24 | test_cfg=test_cfg,
25 | data_preprocessor=data_preprocessor,
26 | init_cfg=init_cfg)
27 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/scnet.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from .cascade_rcnn import CascadeRCNN
4 |
5 |
6 | @MODELS.register_module()
7 | class SCNet(CascadeRCNN):
8 | """Implementation of `SCNet `_"""
9 |
10 | def __init__(self, **kwargs) -> None:
11 | super().__init__(**kwargs)
12 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/solo.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor
5 |
6 |
7 | @MODELS.register_module()
8 | class SOLO(SingleStageInstanceSegmentor):
9 | """`SOLO: Segmenting Objects by Locations
10 | `_
11 |
12 | """
13 |
14 | def __init__(self,
15 | backbone: ConfigType,
16 | neck: OptConfigType = None,
17 | bbox_head: OptConfigType = None,
18 | mask_head: OptConfigType = None,
19 | train_cfg: OptConfigType = None,
20 | test_cfg: OptConfigType = None,
21 | data_preprocessor: OptConfigType = None,
22 | init_cfg: OptMultiConfig = None):
23 | super().__init__(
24 | backbone=backbone,
25 | neck=neck,
26 | bbox_head=bbox_head,
27 | mask_head=mask_head,
28 | train_cfg=train_cfg,
29 | test_cfg=test_cfg,
30 | data_preprocessor=data_preprocessor,
31 | init_cfg=init_cfg)
32 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/solov2.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor
5 |
6 |
7 | @MODELS.register_module()
8 | class SOLOv2(SingleStageInstanceSegmentor):
9 | """`SOLOv2: Dynamic and Fast Instance Segmentation
10 | `_
11 |
12 | """
13 |
14 | def __init__(self,
15 | backbone: ConfigType,
16 | neck: OptConfigType = None,
17 | bbox_head: OptConfigType = None,
18 | mask_head: OptConfigType = None,
19 | train_cfg: OptConfigType = None,
20 | test_cfg: OptConfigType = None,
21 | data_preprocessor: OptConfigType = None,
22 | init_cfg: OptMultiConfig = None):
23 | super().__init__(
24 | backbone=backbone,
25 | neck=neck,
26 | bbox_head=bbox_head,
27 | mask_head=mask_head,
28 | train_cfg=train_cfg,
29 | test_cfg=test_cfg,
30 | data_preprocessor=data_preprocessor,
31 | init_cfg=init_cfg)
32 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/sparse_rcnn.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .two_stage import TwoStageDetector
5 |
6 |
7 | @MODELS.register_module()
8 | class SparseRCNN(TwoStageDetector):
9 | r"""Implementation of `Sparse R-CNN: End-to-End Object Detection with
10 | Learnable Proposals `_"""
11 |
12 | def __init__(self,
13 | backbone: ConfigType,
14 | neck: OptConfigType = None,
15 | rpn_head: OptConfigType = None,
16 | roi_head: OptConfigType = None,
17 | train_cfg: OptConfigType = None,
18 | test_cfg: OptConfigType = None,
19 | data_preprocessor: OptConfigType = None,
20 | init_cfg: OptMultiConfig = None) -> None:
21 | super().__init__(
22 | backbone=backbone,
23 | neck=neck,
24 | rpn_head=rpn_head,
25 | roi_head=roi_head,
26 | train_cfg=train_cfg,
27 | test_cfg=test_cfg,
28 | data_preprocessor=data_preprocessor,
29 | init_cfg=init_cfg)
30 | assert self.with_rpn, 'Sparse R-CNN and QueryInst ' \
31 | 'do not support external proposals'
32 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/detectors/yolact.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import MODELS
3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor
5 |
6 |
7 | @MODELS.register_module()
8 | class YOLACT(SingleStageInstanceSegmentor):
9 | """Implementation of `YOLACT `_"""
10 |
11 | def __init__(self,
12 | backbone: ConfigType,
13 | neck: ConfigType,
14 | bbox_head: ConfigType,
15 | mask_head: ConfigType,
16 | train_cfg: OptConfigType = None,
17 | test_cfg: OptConfigType = None,
18 | data_preprocessor: OptConfigType = None,
19 | init_cfg: OptMultiConfig = None) -> None:
20 | super().__init__(
21 | backbone=backbone,
22 | neck=neck,
23 | bbox_head=bbox_head,
24 | mask_head=mask_head,
25 | train_cfg=train_cfg,
26 | test_cfg=test_cfg,
27 | data_preprocessor=data_preprocessor,
28 | init_cfg=init_cfg)
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/language_models/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .bert import BertModel
3 |
4 | __all__ = ['BertModel']
5 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/layers/activations.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | import torch
3 | import torch.nn as nn
4 | from mmengine.utils import digit_version
5 |
6 | from mmdet.registry import MODELS
7 |
8 | if digit_version(torch.__version__) >= digit_version('1.7.0'):
9 | from torch.nn import SiLU
10 | else:
11 |
12 | class SiLU(nn.Module):
13 | """Sigmoid Weighted Liner Unit."""
14 |
15 | def __init__(self, inplace=True):
16 | super().__init__()
17 |
18 | def forward(self, inputs) -> torch.Tensor:
19 | return inputs * torch.sigmoid(inputs)
20 |
21 |
22 | MODELS.register_module(module=SiLU, name='SiLU')
23 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/mot/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .base import BaseMOTModel
3 | from .bytetrack import ByteTrack
4 | from .deep_sort import DeepSORT
5 | from .ocsort import OCSORT
6 | from .qdtrack import QDTrack
7 | from .strongsort import StrongSORT
8 |
9 | __all__ = [
10 | 'BaseMOTModel', 'ByteTrack', 'QDTrack', 'DeepSORT', 'StrongSORT', 'OCSORT'
11 | ]
12 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/necks/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .bfp import BFP
3 | from .channel_mapper import ChannelMapper
4 | from .cspnext_pafpn import CSPNeXtPAFPN
5 | from .ct_resnet_neck import CTResNetNeck
6 | from .dilated_encoder import DilatedEncoder
7 | from .dyhead import DyHead
8 | from .fpg import FPG
9 | from .fpn import FPN
10 | from .fpn_carafe import FPN_CARAFE
11 | from .fpn_dropblock import FPN_DropBlock
12 | from .hrfpn import HRFPN
13 | from .nas_fpn import NASFPN
14 | from .nasfcos_fpn import NASFCOS_FPN
15 | from .pafpn import PAFPN
16 | from .rfp import RFP
17 | from .ssd_neck import SSDNeck
18 | from .ssh import SSH
19 | from .yolo_neck import YOLOV3Neck
20 | from .yolox_pafpn import YOLOXPAFPN
21 |
22 | __all__ = [
23 | 'FPN', 'BFP', 'ChannelMapper', 'HRFPN', 'NASFPN', 'FPN_CARAFE', 'PAFPN',
24 | 'NASFCOS_FPN', 'RFP', 'YOLOV3Neck', 'FPG', 'DilatedEncoder',
25 | 'CTResNetNeck', 'SSDNeck', 'YOLOXPAFPN', 'DyHead', 'CSPNeXtPAFPN', 'SSH',
26 | 'FPN_DropBlock'
27 | ]
28 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/reid/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .base_reid import BaseReID
3 | from .fc_module import FcModule
4 | from .gap import GlobalAveragePooling
5 | from .linear_reid_head import LinearReIDHead
6 |
7 | __all__ = ['BaseReID', 'GlobalAveragePooling', 'LinearReIDHead', 'FcModule']
8 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/roi_heads/bbox_heads/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .bbox_head import BBoxHead
3 | from .convfc_bbox_head import (ConvFCBBoxHead, Shared2FCBBoxHead,
4 | Shared4Conv1FCBBoxHead)
5 | from .dii_head import DIIHead
6 | from .double_bbox_head import DoubleConvFCBBoxHead
7 | from .multi_instance_bbox_head import MultiInstanceBBoxHead
8 | from .sabl_head import SABLHead
9 | from .scnet_bbox_head import SCNetBBoxHead
10 |
11 | __all__ = [
12 | 'BBoxHead', 'ConvFCBBoxHead', 'Shared2FCBBoxHead',
13 | 'Shared4Conv1FCBBoxHead', 'DoubleConvFCBBoxHead', 'SABLHead', 'DIIHead',
14 | 'SCNetBBoxHead', 'MultiInstanceBBoxHead'
15 | ]
16 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/roi_heads/mask_heads/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .coarse_mask_head import CoarseMaskHead
3 | from .dynamic_mask_head import DynamicMaskHead
4 | from .fcn_mask_head import FCNMaskHead
5 | from .feature_relay_head import FeatureRelayHead
6 | from .fused_semantic_head import FusedSemanticHead
7 | from .global_context_head import GlobalContextHead
8 | from .grid_head import GridHead
9 | from .htc_mask_head import HTCMaskHead
10 | from .mask_point_head import MaskPointHead
11 | from .maskiou_head import MaskIoUHead
12 | from .scnet_mask_head import SCNetMaskHead
13 | from .scnet_semantic_head import SCNetSemanticHead
14 |
15 | __all__ = [
16 | 'FCNMaskHead', 'HTCMaskHead', 'FusedSemanticHead', 'GridHead',
17 | 'MaskIoUHead', 'CoarseMaskHead', 'MaskPointHead', 'SCNetMaskHead',
18 | 'SCNetSemanticHead', 'GlobalContextHead', 'FeatureRelayHead',
19 | 'DynamicMaskHead'
20 | ]
21 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/roi_heads/mask_heads/scnet_mask_head.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.models.layers import ResLayer, SimplifiedBasicBlock
3 | from mmdet.registry import MODELS
4 | from .fcn_mask_head import FCNMaskHead
5 |
6 |
7 | @MODELS.register_module()
8 | class SCNetMaskHead(FCNMaskHead):
9 | """Mask head for `SCNet `_.
10 |
11 | Args:
12 | conv_to_res (bool, optional): if True, change the conv layers to
13 | ``SimplifiedBasicBlock``.
14 | """
15 |
16 | def __init__(self, conv_to_res: bool = True, **kwargs) -> None:
17 | super().__init__(**kwargs)
18 | self.conv_to_res = conv_to_res
19 | if conv_to_res:
20 | assert self.conv_kernel_size == 3
21 | self.num_res_blocks = self.num_convs // 2
22 | self.convs = ResLayer(
23 | SimplifiedBasicBlock,
24 | self.in_channels,
25 | self.conv_out_channels,
26 | self.num_res_blocks,
27 | conv_cfg=self.conv_cfg,
28 | norm_cfg=self.norm_cfg)
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/roi_heads/mask_heads/scnet_semantic_head.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.models.layers import ResLayer, SimplifiedBasicBlock
3 | from mmdet.registry import MODELS
4 | from .fused_semantic_head import FusedSemanticHead
5 |
6 |
7 | @MODELS.register_module()
8 | class SCNetSemanticHead(FusedSemanticHead):
9 | """Mask head for `SCNet `_.
10 |
11 | Args:
12 | conv_to_res (bool, optional): if True, change the conv layers to
13 | ``SimplifiedBasicBlock``.
14 | """
15 |
16 | def __init__(self, conv_to_res: bool = True, **kwargs) -> None:
17 | super().__init__(**kwargs)
18 | self.conv_to_res = conv_to_res
19 | if self.conv_to_res:
20 | num_res_blocks = self.num_convs // 2
21 | self.convs = ResLayer(
22 | SimplifiedBasicBlock,
23 | self.in_channels,
24 | self.conv_out_channels,
25 | num_res_blocks,
26 | conv_cfg=self.conv_cfg,
27 | norm_cfg=self.norm_cfg)
28 | self.num_convs = num_res_blocks
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/roi_heads/roi_extractors/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .base_roi_extractor import BaseRoIExtractor
3 | from .generic_roi_extractor import GenericRoIExtractor
4 | from .single_level_roi_extractor import SingleRoIExtractor
5 |
6 | __all__ = ['BaseRoIExtractor', 'SingleRoIExtractor', 'GenericRoIExtractor']
7 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/roi_heads/shared_heads/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .res_layer import ResLayer
3 |
4 | __all__ = ['ResLayer']
5 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/seg_heads/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .panoptic_fpn_head import PanopticFPNHead # noqa: F401,F403
3 | from .panoptic_fusion_heads import * # noqa: F401,F403
4 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/seg_heads/panoptic_fusion_heads/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .base_panoptic_fusion_head import \
3 | BasePanopticFusionHead # noqa: F401,F403
4 | from .heuristic_fusion_head import HeuristicFusionHead # noqa: F401,F403
5 | from .maskformer_fusion_head import MaskFormerFusionHead # noqa: F401,F403
6 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .assigners import * # noqa: F401,F403
3 | from .builder import (ANCHOR_GENERATORS, BBOX_ASSIGNERS, BBOX_CODERS,
4 | BBOX_SAMPLERS, IOU_CALCULATORS, MATCH_COSTS,
5 | PRIOR_GENERATORS, build_anchor_generator, build_assigner,
6 | build_bbox_coder, build_iou_calculator, build_match_cost,
7 | build_prior_generator, build_sampler)
8 | from .coders import * # noqa: F401,F403
9 | from .prior_generators import * # noqa: F401,F403
10 | from .samplers import * # noqa: F401,F403
11 | from .tracking import * # noqa: F401,F403
12 |
13 | __all__ = [
14 | 'ANCHOR_GENERATORS', 'PRIOR_GENERATORS', 'BBOX_ASSIGNERS', 'BBOX_SAMPLERS',
15 | 'MATCH_COSTS', 'BBOX_CODERS', 'IOU_CALCULATORS', 'build_anchor_generator',
16 | 'build_prior_generator', 'build_assigner', 'build_sampler',
17 | 'build_iou_calculator', 'build_match_cost', 'build_bbox_coder'
18 | ]
19 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/assigners/base_assigner.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from abc import ABCMeta, abstractmethod
3 | from typing import Optional
4 |
5 | from mmengine.structures import InstanceData
6 |
7 |
8 | class BaseAssigner(metaclass=ABCMeta):
9 | """Base assigner that assigns boxes to ground truth boxes."""
10 |
11 | @abstractmethod
12 | def assign(self,
13 | pred_instances: InstanceData,
14 | gt_instances: InstanceData,
15 | gt_instances_ignore: Optional[InstanceData] = None,
16 | **kwargs):
17 | """Assign boxes to either a ground truth boxes or a negative boxes."""
18 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/coders/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .base_bbox_coder import BaseBBoxCoder
3 | from .bucketing_bbox_coder import BucketingBBoxCoder
4 | from .delta_xywh_bbox_coder import (DeltaXYWHBBoxCoder,
5 | DeltaXYWHBBoxCoderForGLIP)
6 | from .distance_point_bbox_coder import DistancePointBBoxCoder
7 | from .legacy_delta_xywh_bbox_coder import LegacyDeltaXYWHBBoxCoder
8 | from .pseudo_bbox_coder import PseudoBBoxCoder
9 | from .tblr_bbox_coder import TBLRBBoxCoder
10 | from .yolo_bbox_coder import YOLOBBoxCoder
11 |
12 | __all__ = [
13 | 'BaseBBoxCoder', 'PseudoBBoxCoder', 'DeltaXYWHBBoxCoder',
14 | 'LegacyDeltaXYWHBBoxCoder', 'TBLRBBoxCoder', 'YOLOBBoxCoder',
15 | 'BucketingBBoxCoder', 'DistancePointBBoxCoder', 'DeltaXYWHBBoxCoderForGLIP'
16 | ]
17 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/coders/base_bbox_coder.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from abc import ABCMeta, abstractmethod
3 |
4 |
5 | class BaseBBoxCoder(metaclass=ABCMeta):
6 | """Base bounding box coder.
7 |
8 | Args:
9 | use_box_type (bool): Whether to warp decoded boxes with the
10 | box type data structure. Defaults to False.
11 | """
12 |
13 | # The size of the last of dimension of the encoded tensor.
14 | encode_size = 4
15 |
16 | def __init__(self, use_box_type: bool = False, **kwargs):
17 | self.use_box_type = use_box_type
18 |
19 | @abstractmethod
20 | def encode(self, bboxes, gt_bboxes):
21 | """Encode deltas between bboxes and ground truth boxes."""
22 |
23 | @abstractmethod
24 | def decode(self, bboxes, bboxes_pred):
25 | """Decode the predicted bboxes according to prediction and base
26 | boxes."""
27 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/coders/pseudo_bbox_coder.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from typing import Union
3 |
4 | from torch import Tensor
5 |
6 | from mmdet.registry import TASK_UTILS
7 | from mmdet.structures.bbox import BaseBoxes, HorizontalBoxes, get_box_tensor
8 | from .base_bbox_coder import BaseBBoxCoder
9 |
10 |
11 | @TASK_UTILS.register_module()
12 | class PseudoBBoxCoder(BaseBBoxCoder):
13 | """Pseudo bounding box coder."""
14 |
15 | def __init__(self, **kwargs):
16 | super().__init__(**kwargs)
17 |
18 | def encode(self, bboxes: Tensor, gt_bboxes: Union[Tensor,
19 | BaseBoxes]) -> Tensor:
20 | """torch.Tensor: return the given ``bboxes``"""
21 | gt_bboxes = get_box_tensor(gt_bboxes)
22 | return gt_bboxes
23 |
24 | def decode(self, bboxes: Tensor, pred_bboxes: Union[Tensor,
25 | BaseBoxes]) -> Tensor:
26 | """torch.Tensor: return the given ``pred_bboxes``"""
27 | if self.use_box_type:
28 | pred_bboxes = HorizontalBoxes(pred_bboxes)
29 | return pred_bboxes
30 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/prior_generators/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .anchor_generator import (AnchorGenerator, LegacyAnchorGenerator,
3 | SSDAnchorGenerator, YOLOAnchorGenerator)
4 | from .point_generator import MlvlPointGenerator, PointGenerator
5 | from .utils import anchor_inside_flags, calc_region
6 |
7 | __all__ = [
8 | 'AnchorGenerator', 'LegacyAnchorGenerator', 'anchor_inside_flags',
9 | 'PointGenerator', 'calc_region', 'YOLOAnchorGenerator',
10 | 'MlvlPointGenerator', 'SSDAnchorGenerator'
11 | ]
12 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/samplers/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .base_sampler import BaseSampler
3 | from .combined_sampler import CombinedSampler
4 | from .instance_balanced_pos_sampler import InstanceBalancedPosSampler
5 | from .iou_balanced_neg_sampler import IoUBalancedNegSampler
6 | from .mask_pseudo_sampler import MaskPseudoSampler
7 | from .mask_sampling_result import MaskSamplingResult
8 | from .multi_instance_random_sampler import MultiInsRandomSampler
9 | from .multi_instance_sampling_result import MultiInstanceSamplingResult
10 | from .ohem_sampler import OHEMSampler
11 | from .pseudo_sampler import PseudoSampler
12 | from .random_sampler import RandomSampler
13 | from .sampling_result import SamplingResult
14 | from .score_hlr_sampler import ScoreHLRSampler
15 |
16 | __all__ = [
17 | 'BaseSampler', 'PseudoSampler', 'RandomSampler',
18 | 'InstanceBalancedPosSampler', 'IoUBalancedNegSampler', 'CombinedSampler',
19 | 'OHEMSampler', 'SamplingResult', 'ScoreHLRSampler', 'MaskPseudoSampler',
20 | 'MaskSamplingResult', 'MultiInstanceSamplingResult',
21 | 'MultiInsRandomSampler'
22 | ]
23 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/samplers/combined_sampler.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmdet.registry import TASK_UTILS
3 | from .base_sampler import BaseSampler
4 |
5 |
6 | @TASK_UTILS.register_module()
7 | class CombinedSampler(BaseSampler):
8 | """A sampler that combines positive sampler and negative sampler."""
9 |
10 | def __init__(self, pos_sampler, neg_sampler, **kwargs):
11 | super(CombinedSampler, self).__init__(**kwargs)
12 | self.pos_sampler = TASK_UTILS.build(pos_sampler, default_args=kwargs)
13 | self.neg_sampler = TASK_UTILS.build(neg_sampler, default_args=kwargs)
14 |
15 | def _sample_pos(self, **kwargs):
16 | """Sample positive samples."""
17 | raise NotImplementedError
18 |
19 | def _sample_neg(self, **kwargs):
20 | """Sample negative samples."""
21 | raise NotImplementedError
22 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/tracking/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .aflink import AppearanceFreeLink
3 | from .camera_motion_compensation import CameraMotionCompensation
4 | from .interpolation import InterpolateTracklets
5 | from .kalman_filter import KalmanFilter
6 | from .similarity import embed_similarity
7 |
8 | __all__ = [
9 | 'KalmanFilter', 'InterpolateTracklets', 'embed_similarity',
10 | 'AppearanceFreeLink', 'CameraMotionCompensation'
11 | ]
12 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/task_modules/tracking/similarity.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | import torch
3 | import torch.nn.functional as F
4 | from torch import Tensor
5 |
6 |
7 | def embed_similarity(key_embeds: Tensor,
8 | ref_embeds: Tensor,
9 | method: str = 'dot_product',
10 | temperature: int = -1) -> Tensor:
11 | """Calculate feature similarity from embeddings.
12 |
13 | Args:
14 | key_embeds (Tensor): Shape (N1, C).
15 | ref_embeds (Tensor): Shape (N2, C).
16 | method (str, optional): Method to calculate the similarity,
17 | options are 'dot_product' and 'cosine'. Defaults to
18 | 'dot_product'.
19 | temperature (int, optional): Softmax temperature. Defaults to -1.
20 |
21 | Returns:
22 | Tensor: Similarity matrix of shape (N1, N2).
23 | """
24 | assert method in ['dot_product', 'cosine']
25 |
26 | if method == 'cosine':
27 | key_embeds = F.normalize(key_embeds, p=2, dim=1)
28 | ref_embeds = F.normalize(ref_embeds, p=2, dim=1)
29 |
30 | similarity = torch.mm(key_embeds, ref_embeds.T)
31 |
32 | if temperature > 0:
33 | similarity /= float(temperature)
34 | return similarity
35 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/test_time_augs/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .det_tta import DetTTAModel
3 | from .merge_augs import (merge_aug_bboxes, merge_aug_masks,
4 | merge_aug_proposals, merge_aug_results,
5 | merge_aug_scores)
6 |
7 | __all__ = [
8 | 'merge_aug_bboxes', 'merge_aug_masks', 'merge_aug_proposals',
9 | 'merge_aug_scores', 'merge_aug_results', 'DetTTAModel'
10 | ]
11 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/trackers/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .base_tracker import BaseTracker
3 | from .byte_tracker import ByteTracker
4 | from .masktrack_rcnn_tracker import MaskTrackRCNNTracker
5 | from .ocsort_tracker import OCSORTTracker
6 | from .quasi_dense_tracker import QuasiDenseTracker
7 | from .sort_tracker import SORTTracker
8 | from .strongsort_tracker import StrongSORTTracker
9 |
10 | __all__ = [
11 | 'BaseTracker', 'ByteTracker', 'QuasiDenseTracker', 'SORTTracker',
12 | 'StrongSORTTracker', 'OCSORTTracker', 'MaskTrackRCNNTracker'
13 | ]
14 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/tracking_heads/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .mask2former_track_head import Mask2FormerTrackHead
3 | from .quasi_dense_embed_head import QuasiDenseEmbedHead
4 | from .quasi_dense_track_head import QuasiDenseTrackHead
5 | from .roi_embed_head import RoIEmbedHead
6 | from .roi_track_head import RoITrackHead
7 |
8 | __all__ = [
9 | 'QuasiDenseEmbedHead', 'QuasiDenseTrackHead', 'Mask2FormerTrackHead',
10 | 'RoIEmbedHead', 'RoITrackHead'
11 | ]
12 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/utils/make_divisible.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | def make_divisible(value, divisor, min_value=None, min_ratio=0.9):
3 | """Make divisible function.
4 |
5 | This function rounds the channel number to the nearest value that can be
6 | divisible by the divisor. It is taken from the original tf repo. It ensures
7 | that all layers have a channel number that is divisible by divisor. It can
8 | be seen here: https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet/mobilenet.py # noqa
9 |
10 | Args:
11 | value (int): The original channel number.
12 | divisor (int): The divisor to fully divide the channel number.
13 | min_value (int): The minimum value of the output channel.
14 | Default: None, means that the minimum value equal to the divisor.
15 | min_ratio (float): The minimum ratio of the rounded channel number to
16 | the original channel number. Default: 0.9.
17 |
18 | Returns:
19 | int: The modified output channel number.
20 | """
21 |
22 | if min_value is None:
23 | min_value = divisor
24 | new_value = max(min_value, int(value + divisor / 2) // divisor * divisor)
25 | # Make sure that round down does not go down by more than (1-min_ratio).
26 | if new_value < min_ratio * value:
27 | new_value += divisor
28 | return new_value
29 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/models/vis/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .mask2former_vis import Mask2FormerVideo
3 | from .masktrack_rcnn import MaskTrackRCNN
4 |
5 | __all__ = ['Mask2FormerVideo', 'MaskTrackRCNN']
6 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/structures/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .det_data_sample import DetDataSample, OptSampleList, SampleList
3 | from .reid_data_sample import ReIDDataSample
4 | from .track_data_sample import (OptTrackSampleList, TrackDataSample,
5 | TrackSampleList)
6 |
7 | __all__ = [
8 | 'DetDataSample', 'SampleList', 'OptSampleList', 'TrackDataSample',
9 | 'TrackSampleList', 'OptTrackSampleList', 'ReIDDataSample'
10 | ]
11 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/structures/mask/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .mask_target import mask_target
3 | from .structures import (BaseInstanceMasks, BitmapMasks, PolygonMasks,
4 | bitmap_to_polygon, polygon_to_bitmap)
5 | from .utils import encode_mask_results, mask2bbox, split_combined_polys
6 |
7 | __all__ = [
8 | 'split_combined_polys', 'mask_target', 'BaseInstanceMasks', 'BitmapMasks',
9 | 'PolygonMasks', 'encode_mask_results', 'mask2bbox', 'polygon_to_bitmap',
10 | 'bitmap_to_polygon'
11 | ]
12 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/testing/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from ._fast_stop_training_hook import FastStopTrainingHook # noqa: F401,F403
3 | from ._utils import (demo_mm_inputs, demo_mm_proposals,
4 | demo_mm_sampling_results, demo_track_inputs,
5 | get_detector_cfg, get_roi_head_cfg, random_boxes,
6 | replace_to_ceph)
7 |
8 | __all__ = [
9 | 'demo_mm_inputs', 'get_detector_cfg', 'get_roi_head_cfg',
10 | 'demo_mm_proposals', 'demo_mm_sampling_results', 'replace_to_ceph',
11 | 'demo_track_inputs', 'VideoDataSampleFeeder', 'random_boxes'
12 | ]
13 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/testing/_fast_stop_training_hook.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.hooks import Hook
3 |
4 | from mmdet.registry import HOOKS
5 |
6 |
7 | @HOOKS.register_module()
8 | class FastStopTrainingHook(Hook):
9 | """Set runner's epoch information to the model."""
10 |
11 | def __init__(self, by_epoch, save_ckpt=False, stop_iter_or_epoch=5):
12 | self.by_epoch = by_epoch
13 | self.save_ckpt = save_ckpt
14 | self.stop_iter_or_epoch = stop_iter_or_epoch
15 |
16 | def after_train_iter(self, runner, batch_idx: int, data_batch: None,
17 | outputs: None) -> None:
18 | if self.save_ckpt and self.by_epoch:
19 | # If it is epoch-based and want to save weights,
20 | # we must run at least 1 epoch.
21 | return
22 | if runner.iter >= self.stop_iter_or_epoch:
23 | raise RuntimeError('quick exit')
24 |
25 | def after_train_epoch(self, runner) -> None:
26 | if runner.epoch >= self.stop_iter_or_epoch - 1:
27 | raise RuntimeError('quick exit')
28 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/utils/collect_env.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from mmengine.utils import get_git_hash
3 | from mmengine.utils.dl_utils import collect_env as collect_base_env
4 |
5 | import mmdet
6 |
7 |
8 | def collect_env():
9 | """Collect the information of the running environments."""
10 | env_info = collect_base_env()
11 | env_info['MMDetection'] = mmdet.__version__ + '+' + get_git_hash()[:7]
12 | return env_info
13 |
14 |
15 | if __name__ == '__main__':
16 | for name, val in collect_env().items():
17 | print(f'{name}: {val}')
18 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/utils/typing_utils.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | """Collecting some commonly used type hint in mmdetection."""
3 | from typing import List, Optional, Sequence, Tuple, Union
4 |
5 | from mmengine.config import ConfigDict
6 | from mmengine.structures import InstanceData, PixelData
7 |
8 | # TODO: Need to avoid circular import with assigner and sampler
9 | # Type hint of config data
10 | ConfigType = Union[ConfigDict, dict]
11 | OptConfigType = Optional[ConfigType]
12 | # Type hint of one or more config data
13 | MultiConfig = Union[ConfigType, List[ConfigType]]
14 | OptMultiConfig = Optional[MultiConfig]
15 |
16 | InstanceList = List[InstanceData]
17 | OptInstanceList = Optional[InstanceList]
18 |
19 | PixelList = List[PixelData]
20 | OptPixelList = Optional[PixelList]
21 |
22 | RangeType = Sequence[Tuple[int, int]]
23 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/utils/util_random.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | """Helpers for random number generators."""
3 | import numpy as np
4 |
5 |
6 | def ensure_rng(rng=None):
7 | """Coerces input into a random number generator.
8 |
9 | If the input is None, then a global random state is returned.
10 |
11 | If the input is a numeric value, then that is used as a seed to construct a
12 | random state. Otherwise the input is returned as-is.
13 |
14 | Adapted from [1]_.
15 |
16 | Args:
17 | rng (int | numpy.random.RandomState | None):
18 | if None, then defaults to the global rng. Otherwise this can be an
19 | integer or a RandomState class
20 | Returns:
21 | (numpy.random.RandomState) : rng -
22 | a numpy random number generator
23 |
24 | References:
25 | .. [1] https://gitlab.kitware.com/computer-vision/kwarray/blob/master/kwarray/util_random.py#L270 # noqa: E501
26 | """
27 |
28 | if rng is None:
29 | rng = np.random.mtrand._rand
30 | elif isinstance(rng, int):
31 | rng = np.random.RandomState(rng)
32 | else:
33 | rng = rng
34 | return rng
35 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/version.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 |
3 | __version__ = '3.3.0'
4 | short_version = __version__
5 |
6 |
7 | def parse_version_info(version_str):
8 | """Parse a version string into a tuple.
9 |
10 | Args:
11 | version_str (str): The version string.
12 | Returns:
13 | tuple[int | str]: The version info, e.g., "1.3.0" is parsed into
14 | (1, 3, 0), and "2.0.0rc1" is parsed into (2, 0, 0, 'rc1').
15 | """
16 | version_info = []
17 | for x in version_str.split('.'):
18 | if x.isdigit():
19 | version_info.append(int(x))
20 | elif x.find('rc') != -1:
21 | patch_version = x.split('rc')
22 | version_info.append(int(patch_version[0]))
23 | version_info.append(f'rc{patch_version[1]}')
24 | return tuple(version_info)
25 |
26 |
27 | version_info = parse_version_info(__version__)
28 |
--------------------------------------------------------------------------------
/downstream/det/mmdet/visualization/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) OpenMMLab. All rights reserved.
2 | from .local_visualizer import DetLocalVisualizer, TrackLocalVisualizer
3 | from .palette import get_palette, jitter_color, palette_val
4 |
5 | __all__ = [
6 | 'palette_val', 'get_palette', 'DetLocalVisualizer', 'jitter_color',
7 | 'TrackLocalVisualizer'
8 | ]
9 |
--------------------------------------------------------------------------------
/downstream/det/tools/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/tools/__init__.py
--------------------------------------------------------------------------------
/downstream/det/tools/analysis_tools/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/tools/analysis_tools/__init__.py
--------------------------------------------------------------------------------
/downstream/det/tools/analysis_tools/mot/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/tools/analysis_tools/mot/__init__.py
--------------------------------------------------------------------------------
/downstream/det/tools/analysis_tools/mot/dist_mot_search.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | CONFIG=$1
4 | GPUS=$2
5 | PORT=${PORT:-29500}
6 |
7 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
8 | python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \
9 | $(dirname "$0")/mot_param_search.py $CONFIG --launcher pytorch ${@:3}
10 |
--------------------------------------------------------------------------------
/downstream/det/tools/analysis_tools/mot/slurm_mot_search.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -x
4 |
5 | PARTITION=$1
6 | JOB_NAME=$2
7 | CONFIG=$3
8 | GPUS=$4
9 | GPUS_PER_NODE=${GPUS_PER_NODE:-8}
10 | CPUS_PER_TASK=${CPUS_PER_TASK:-2}
11 | PY_ARGS=${@:5}
12 | SRUN_ARGS=${SRUN_ARGS:-""}
13 |
14 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
15 | srun -p ${PARTITION} \
16 | --job-name=${JOB_NAME} \
17 | --gres=gpu:${GPUS_PER_NODE} \
18 | --ntasks=${GPUS} \
19 | --ntasks-per-node=${GPUS_PER_NODE} \
20 | --cpus-per-task=${CPUS_PER_TASK} \
21 | --kill-on-bad-exit=1 \
22 | ${SRUN_ARGS} \
23 | python -u $(dirname "$0")/mot_param_search.py ${CONFIG} --launcher="slurm" ${PY_ARGS}
24 |
--------------------------------------------------------------------------------
/downstream/det/tools/dataset_converters/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/tools/dataset_converters/__init__.py
--------------------------------------------------------------------------------
/downstream/det/tools/dataset_converters/fix_o365_names.py:
--------------------------------------------------------------------------------
1 | # Reference: https://github.com/shenyunhang/APE/blob/main/datasets/tools/objects3652coco/fix_o365_names.py # noqa
2 | import argparse
3 | import copy
4 | import json
5 |
6 | if __name__ == '__main__':
7 | parser = argparse.ArgumentParser()
8 | parser.add_argument(
9 | '--ann',
10 | default='data/objects365v2/annotations/zhiyuan_objv2_train.json')
11 | parser.add_argument(
12 | '--fix_name_map',
13 | default='tools/dataset_converters/zhiyuan_objv2_train_names_fix.csv')
14 | args = parser.parse_args()
15 |
16 | new_names = {}
17 | old_names = {}
18 | with open(args.fix_name_map, 'r') as f:
19 | for line in f:
20 | tmp = line.strip().split(',')
21 | old_names[int(tmp[0])] = tmp[1]
22 | new_names[int(tmp[0])] = tmp[2]
23 | data = json.load(open(args.ann, 'r'))
24 |
25 | cat_info = copy.deepcopy(data['categories'])
26 |
27 | for x in cat_info:
28 | if old_names[x['id']] != new_names[x['id']]:
29 | print('Renaming', x['id'], x['name'], new_names[x['id']])
30 | x['name'] = new_names[x['id']]
31 |
32 | data['categories'] = cat_info
33 | out_name = args.ann[:-5] + '_fixname.json'
34 | print('Saving to', out_name)
35 | json.dump(data, open(out_name, 'w'))
36 |
--------------------------------------------------------------------------------
/downstream/det/tools/dataset_converters/scripts/preprocess_coco2017.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | DOWNLOAD_DIR=$1
4 | DATA_ROOT=$2
5 |
6 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Images/val2017.zip -d $DATA_ROOT
7 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Images/train2017.zip -d $DATA_ROOT
8 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Images/test2017.zip -d $DATA_ROOT/
9 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Images/unlabeled2017.zip -d $DATA_ROOT
10 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Annotations/stuff_annotations_trainval2017.zip -d $DATA_ROOT/
11 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Annotations/panoptic_annotations_trainval2017.zip -d $DATA_ROOT/
12 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Annotations/image_info_unlabeled2017.zip -d $DATA_ROOT/
13 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Annotations/image_info_test2017.zip -d $DATA_ROOT/
14 | unzip $DOWNLOAD_DIR/OpenDataLab___COCO_2017/raw/Annotations/annotations_trainval2017.zip -d $DATA_ROOT
15 | rm -rf $DOWNLOAD_DIR/OpenDataLab___COCO_2017
16 |
--------------------------------------------------------------------------------
/downstream/det/tools/dataset_converters/scripts/preprocess_voc2007.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | DOWNLOAD_DIR=$1
4 | DATA_ROOT=$2
5 |
6 | tar -xvf $DOWNLOAD_DIR/OpenDataLab___PASCAL_VOC2007/raw/VOCtrainval_06-Nov-2007.tar -C $DATA_ROOT
7 | tar -xvf $DOWNLOAD_DIR/OpenDataLab___PASCAL_VOC2007/raw/VOCtestnoimgs_06-Nov-2007.tar -C $DATA_ROOT
8 | rm -rf $DOWNLOAD_DIR/OpenDataLab___PASCAL_VOC2007
9 |
--------------------------------------------------------------------------------
/downstream/det/tools/dataset_converters/scripts/preprocess_voc2012.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | DOWNLOAD_DIR=$1
4 | DATA_ROOT=$2
5 |
6 | tar -xvf $DOWNLOAD_DIR/OpenDataLab___PASCAL_VOC2012/raw/VOCtrainval_11-May-2012.tar -C $DATA_ROOT
7 | tar -xvf $DOWNLOAD_DIR/OpenDataLab___PASCAL_VOC2012/raw/VOC2012test.tar -C $DATA_ROOT
8 | rm -rf $DOWNLOAD_DIR/OpenDataLab___PASCAL_VOC2012
9 |
--------------------------------------------------------------------------------
/downstream/det/tools/deployment/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/tools/deployment/__init__.py
--------------------------------------------------------------------------------
/downstream/det/tools/dist_test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | CONFIG=$1
4 | CHECKPOINT=$2
5 | GPUS=$3
6 | NNODES=${NNODES:-1}
7 | NODE_RANK=${NODE_RANK:-0}
8 | PORT=${PORT:-29500}
9 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"}
10 |
11 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
12 | python -m torch.distributed.launch \
13 | --nnodes=$NNODES \
14 | --node_rank=$NODE_RANK \
15 | --master_addr=$MASTER_ADDR \
16 | --nproc_per_node=$GPUS \
17 | --master_port=$PORT \
18 | $(dirname "$0")/test.py \
19 | $CONFIG \
20 | $CHECKPOINT \
21 | --launcher pytorch \
22 | ${@:4}
23 |
--------------------------------------------------------------------------------
/downstream/det/tools/dist_test_tracking.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | CONFIG=$1
4 | GPUS=$2
5 | NNODES=${NNODES:-1}
6 | NODE_RANK=${NODE_RANK:-0}
7 | PORT=${PORT:-29500}
8 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"}
9 |
10 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
11 | python -m torch.distributed.launch \
12 | --nnodes=$NNODES \
13 | --node_rank=$NODE_RANK \
14 | --master_addr=$MASTER_ADDR \
15 | --nproc_per_node=$GPUS \
16 | --master_port=$PORT \
17 | $(dirname "$0")/test_tracking.py \
18 | $CONFIG \
19 | --launcher pytorch \
20 | ${@:3}
21 |
--------------------------------------------------------------------------------
/downstream/det/tools/dist_train.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | CONFIG=$1
4 | GPUS=$2
5 | NNODES=${NNODES:-1}
6 | NODE_RANK=${NODE_RANK:-0}
7 | PORT=${PORT:-29500}
8 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"}
9 |
10 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
11 | python -m torch.distributed.launch \
12 | --nnodes=$NNODES \
13 | --node_rank=$NODE_RANK \
14 | --master_addr=$MASTER_ADDR \
15 | --nproc_per_node=$GPUS \
16 | --master_port=$PORT \
17 | $(dirname "$0")/train.py \
18 | $CONFIG \
19 | --launcher pytorch ${@:3}
20 |
--------------------------------------------------------------------------------
/downstream/det/tools/misc/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/tools/misc/__init__.py
--------------------------------------------------------------------------------
/downstream/det/tools/misc/gen_coco_panoptic_test_info.py:
--------------------------------------------------------------------------------
1 | import argparse
2 | import os.path as osp
3 |
4 | from mmengine.fileio import dump, load
5 |
6 |
7 | def parse_args():
8 | parser = argparse.ArgumentParser(
9 | description='Generate COCO test image information '
10 | 'for COCO panoptic segmentation.')
11 | parser.add_argument('data_root', help='Path to COCO annotation directory.')
12 | args = parser.parse_args()
13 |
14 | return args
15 |
16 |
17 | def main():
18 | args = parse_args()
19 | data_root = args.data_root
20 | val_info = load(osp.join(data_root, 'panoptic_val2017.json'))
21 | test_old_info = load(osp.join(data_root, 'image_info_test-dev2017.json'))
22 |
23 | # replace categories from image_info_test-dev2017.json
24 | # with categories from panoptic_val2017.json which
25 | # has attribute `isthing`.
26 | test_info = test_old_info
27 | test_info.update({'categories': val_info['categories']})
28 | dump(test_info, osp.join(data_root,
29 | 'panoptic_image_info_test-dev2017.json'))
30 |
31 |
32 | if __name__ == '__main__':
33 | main()
34 |
--------------------------------------------------------------------------------
/downstream/det/tools/model_converters/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/det/tools/model_converters/__init__.py
--------------------------------------------------------------------------------
/downstream/det/tools/slurm_test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -x
4 |
5 | PARTITION=$1
6 | JOB_NAME=$2
7 | CONFIG=$3
8 | CHECKPOINT=$4
9 | GPUS=${GPUS:-8}
10 | GPUS_PER_NODE=${GPUS_PER_NODE:-8}
11 | CPUS_PER_TASK=${CPUS_PER_TASK:-5}
12 | PY_ARGS=${@:5}
13 | SRUN_ARGS=${SRUN_ARGS:-""}
14 |
15 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
16 | srun -p ${PARTITION} \
17 | --job-name=${JOB_NAME} \
18 | --gres=gpu:${GPUS_PER_NODE} \
19 | --ntasks=${GPUS} \
20 | --ntasks-per-node=${GPUS_PER_NODE} \
21 | --cpus-per-task=${CPUS_PER_TASK} \
22 | --kill-on-bad-exit=1 \
23 | ${SRUN_ARGS} \
24 | python -u tools/test.py ${CONFIG} ${CHECKPOINT} --launcher="slurm" ${PY_ARGS}
25 |
--------------------------------------------------------------------------------
/downstream/det/tools/slurm_test_tracking.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -x
4 |
5 | PARTITION=$1
6 | JOB_NAME=$2
7 | CONFIG=$3
8 | GPUS=${GPUS:-8}
9 | GPUS_PER_NODE=${GPUS_PER_NODE:-8}
10 | CPUS_PER_TASK=${CPUS_PER_TASK:-5}
11 | PY_ARGS=${@:4}
12 | SRUN_ARGS=${SRUN_ARGS:-""}
13 |
14 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
15 | srun -p ${PARTITION} \
16 | --job-name=${JOB_NAME} \
17 | --gres=gpu:${GPUS_PER_NODE} \
18 | --ntasks=${GPUS} \
19 | --ntasks-per-node=${GPUS_PER_NODE} \
20 | --cpus-per-task=${CPUS_PER_TASK} \
21 | --kill-on-bad-exit=1 \
22 | ${SRUN_ARGS} \
23 | python -u tools/test_tracking.py ${CONFIG} --launcher="slurm" ${PY_ARGS}
24 |
--------------------------------------------------------------------------------
/downstream/det/tools/slurm_train.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -x
4 |
5 | PARTITION=$1
6 | JOB_NAME=$2
7 | CONFIG=$3
8 | WORK_DIR=$4
9 | GPUS=${GPUS:-8}
10 | GPUS_PER_NODE=${GPUS_PER_NODE:-8}
11 | CPUS_PER_TASK=${CPUS_PER_TASK:-5}
12 | SRUN_ARGS=${SRUN_ARGS:-""}
13 | PY_ARGS=${@:5}
14 |
15 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
16 | srun -p ${PARTITION} \
17 | --job-name=${JOB_NAME} \
18 | --gres=gpu:${GPUS_PER_NODE} \
19 | --ntasks=${GPUS} \
20 | --ntasks-per-node=${GPUS_PER_NODE} \
21 | --cpus-per-task=${CPUS_PER_TASK} \
22 | --kill-on-bad-exit=1 \
23 | ${SRUN_ARGS} \
24 | python -u tools/train.py ${CONFIG} --work-dir=${WORK_DIR} --launcher="slurm" ${PY_ARGS}
25 |
--------------------------------------------------------------------------------
/downstream/seg/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/seg/.DS_Store
--------------------------------------------------------------------------------
/downstream/seg/backbones/__init__.py:
--------------------------------------------------------------------------------
1 | from .mobilemamba import MobileMamba
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_ndstate.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_ndstate.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd2.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<2, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<2, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<2, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd3.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<3, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<3, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<3, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd4.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<4, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<4, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<4, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd2.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<2, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<2, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<2, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd3.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<3, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<3, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<3, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd4.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<4, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<4, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<4, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_oflex.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 | template void selective_scan_bwd_cuda<1, at::Half, float, at::Half>(SSMParamsBwd ¶ms, cudaStream_t stream);
10 | template void selective_scan_bwd_cuda<1, at::BFloat16, float, at::BFloat16>(SSMParamsBwd ¶ms, cudaStream_t stream);
11 |
12 |
--------------------------------------------------------------------------------
/downstream/seg/backbones/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_oflex.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 | template void selective_scan_fwd_cuda<1, at::Half, float, at::Half>(SSMParamsBase ¶ms, cudaStream_t stream);
10 | template void selective_scan_fwd_cuda<1, at::BFloat16, float, at::BFloat16>(SSMParamsBase ¶ms, cudaStream_t stream);
11 |
12 |
--------------------------------------------------------------------------------
/downstream/seg/configs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/seg/configs/.DS_Store
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/datasets/cityscapes_1024x1024.py:
--------------------------------------------------------------------------------
1 | _base_ = './cityscapes.py'
2 | crop_size = (1024, 1024)
3 | train_pipeline = [
4 | dict(type='LoadImageFromFile'),
5 | dict(type='LoadAnnotations'),
6 | dict(
7 | type='RandomResize',
8 | scale=(2048, 1024),
9 | ratio_range=(0.5, 2.0),
10 | keep_ratio=True),
11 | dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
12 | dict(type='RandomFlip', prob=0.5),
13 | dict(type='PhotoMetricDistortion'),
14 | dict(type='PackSegInputs')
15 | ]
16 | test_pipeline = [
17 | dict(type='LoadImageFromFile'),
18 | dict(type='Resize', scale=(2048, 1024), keep_ratio=True),
19 | # add loading annotation after ``Resize`` because ground truth
20 | # does not need to do resize data transform
21 | dict(type='LoadAnnotations'),
22 | dict(type='PackSegInputs')
23 | ]
24 | train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
25 | val_dataloader = dict(dataset=dict(pipeline=test_pipeline))
26 | test_dataloader = val_dataloader
27 |
28 | val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])
29 | test_evaluator = val_evaluator
30 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/datasets/cityscapes_768x768.py:
--------------------------------------------------------------------------------
1 | _base_ = './cityscapes.py'
2 | crop_size = (768, 768)
3 | train_pipeline = [
4 | dict(type='LoadImageFromFile'),
5 | dict(type='LoadAnnotations'),
6 | dict(
7 | type='RandomResize',
8 | scale=(2049, 1025),
9 | ratio_range=(0.5, 2.0),
10 | keep_ratio=True),
11 | dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
12 | dict(type='RandomFlip', prob=0.5),
13 | dict(type='PhotoMetricDistortion'),
14 | dict(type='PackSegInputs')
15 | ]
16 | test_pipeline = [
17 | dict(type='LoadImageFromFile'),
18 | dict(type='Resize', scale=(2049, 1025), keep_ratio=True),
19 | # add loading annotation after ``Resize`` because ground truth
20 | # does not need to do resize data transform
21 | dict(type='LoadAnnotations'),
22 | dict(type='PackSegInputs')
23 | ]
24 | train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
25 | val_dataloader = dict(dataset=dict(pipeline=test_pipeline))
26 | test_dataloader = val_dataloader
27 |
28 | val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])
29 | test_evaluator = val_evaluator
30 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/datasets/cityscapes_769x769.py:
--------------------------------------------------------------------------------
1 | _base_ = './cityscapes.py'
2 | crop_size = (769, 769)
3 | train_pipeline = [
4 | dict(type='LoadImageFromFile'),
5 | dict(type='LoadAnnotations'),
6 | dict(
7 | type='RandomResize',
8 | scale=(2049, 1025),
9 | ratio_range=(0.5, 2.0),
10 | keep_ratio=True),
11 | dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
12 | dict(type='RandomFlip', prob=0.5),
13 | dict(type='PhotoMetricDistortion'),
14 | dict(type='PackSegInputs')
15 | ]
16 | test_pipeline = [
17 | dict(type='LoadImageFromFile'),
18 | dict(type='Resize', scale=(2049, 1025), keep_ratio=True),
19 | # add loading annotation after ``Resize`` because ground truth
20 | # does not need to do resize data transform
21 | dict(type='LoadAnnotations'),
22 | dict(type='PackSegInputs')
23 | ]
24 | train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
25 | val_dataloader = dict(dataset=dict(pipeline=test_pipeline))
26 | test_dataloader = val_dataloader
27 |
28 | val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])
29 | test_evaluator = val_evaluator
30 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/datasets/cityscapes_832x832.py:
--------------------------------------------------------------------------------
1 | _base_ = './cityscapes.py'
2 | crop_size = (832, 832)
3 | train_pipeline = [
4 | dict(type='LoadImageFromFile'),
5 | dict(type='LoadAnnotations'),
6 | dict(
7 | type='RandomResize',
8 | scale=(2048, 1024),
9 | ratio_range=(0.5, 2.0),
10 | keep_ratio=True),
11 | dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
12 | dict(type='RandomFlip', prob=0.5),
13 | dict(type='PhotoMetricDistortion'),
14 | dict(type='PackSegInputs')
15 | ]
16 | test_pipeline = [
17 | dict(type='LoadImageFromFile'),
18 | dict(type='Resize', scale=(2048, 1024), keep_ratio=True),
19 | # add loading annotation after ``Resize`` because ground truth
20 | # does not need to do resize data transform
21 | dict(type='LoadAnnotations'),
22 | dict(type='PackSegInputs')
23 | ]
24 | train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
25 | val_dataloader = dict(dataset=dict(pipeline=test_pipeline))
26 | test_dataloader = val_dataloader
27 |
28 | val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])
29 | test_evaluator = val_evaluator
30 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/default_runtime.py:
--------------------------------------------------------------------------------
1 | default_scope = 'mmseg'
2 | env_cfg = dict(
3 | cudnn_benchmark=True,
4 | mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
5 | dist_cfg=dict(backend='nccl'),
6 | )
7 | vis_backends = [dict(type='LocalVisBackend')]
8 | visualizer = dict(
9 | type='SegLocalVisualizer', vis_backends=vis_backends, name='visualizer')
10 | log_processor = dict(by_epoch=False)
11 | log_level = 'INFO'
12 | load_from = None
13 | resume = False
14 |
15 | tta_model = dict(type='SegTTAModel')
16 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/models/dpt_vit-b16.py:
--------------------------------------------------------------------------------
1 | norm_cfg = dict(type='SyncBN', requires_grad=True)
2 | data_preprocessor = dict(
3 | type='SegDataPreProcessor',
4 | mean=[123.675, 116.28, 103.53],
5 | std=[58.395, 57.12, 57.375],
6 | bgr_to_rgb=True,
7 | pad_val=0,
8 | seg_pad_val=255)
9 | model = dict(
10 | type='EncoderDecoder',
11 | data_preprocessor=data_preprocessor,
12 | pretrained='pretrain/vit-b16_p16_224-80ecf9dd.pth', # noqa
13 | backbone=dict(
14 | type='VisionTransformer',
15 | img_size=224,
16 | embed_dims=768,
17 | num_layers=12,
18 | num_heads=12,
19 | out_indices=(2, 5, 8, 11),
20 | final_norm=False,
21 | with_cls_token=True,
22 | output_cls_token=True),
23 | decode_head=dict(
24 | type='DPTHead',
25 | in_channels=(768, 768, 768, 768),
26 | channels=256,
27 | embed_dims=768,
28 | post_process_channels=[96, 192, 384, 768],
29 | num_classes=150,
30 | readout_type='project',
31 | input_transform='multiple_select',
32 | in_index=(0, 1, 2, 3),
33 | norm_cfg=norm_cfg,
34 | loss_decode=dict(
35 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
36 | auxiliary_head=None,
37 | # model training and testing settings
38 | train_cfg=dict(),
39 | test_cfg=dict(mode='whole')) # yapf: disable
40 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/models/erfnet_fcn.py:
--------------------------------------------------------------------------------
1 | # model settings
2 | norm_cfg = dict(type='SyncBN', requires_grad=True)
3 | data_preprocessor = dict(
4 | type='SegDataPreProcessor',
5 | mean=[123.675, 116.28, 103.53],
6 | std=[58.395, 57.12, 57.375],
7 | bgr_to_rgb=True,
8 | pad_val=0,
9 | seg_pad_val=255)
10 | model = dict(
11 | type='EncoderDecoder',
12 | data_preprocessor=data_preprocessor,
13 | pretrained=None,
14 | backbone=dict(
15 | type='ERFNet',
16 | in_channels=3,
17 | enc_downsample_channels=(16, 64, 128),
18 | enc_stage_non_bottlenecks=(5, 8),
19 | enc_non_bottleneck_dilations=(2, 4, 8, 16),
20 | enc_non_bottleneck_channels=(64, 128),
21 | dec_upsample_channels=(64, 16),
22 | dec_stages_non_bottleneck=(2, 2),
23 | dec_non_bottleneck_channels=(64, 16),
24 | dropout_ratio=0.1,
25 | init_cfg=None),
26 | decode_head=dict(
27 | type='FCNHead',
28 | in_channels=16,
29 | channels=128,
30 | num_convs=1,
31 | concat_input=False,
32 | dropout_ratio=0.1,
33 | num_classes=19,
34 | norm_cfg=norm_cfg,
35 | align_corners=False,
36 | loss_decode=dict(
37 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
38 | # model training and testing settings
39 | train_cfg=dict(),
40 | test_cfg=dict(mode='whole'))
41 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/models/lraspp_m-v3-d8.py:
--------------------------------------------------------------------------------
1 | # model settings
2 | norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)
3 | data_preprocessor = dict(
4 | type='SegDataPreProcessor',
5 | mean=[123.675, 116.28, 103.53],
6 | std=[58.395, 57.12, 57.375],
7 | bgr_to_rgb=True,
8 | pad_val=0,
9 | seg_pad_val=255)
10 | model = dict(
11 | type='EncoderDecoder',
12 | data_preprocessor=data_preprocessor,
13 | backbone=dict(
14 | type='MobileNetV3',
15 | arch='large',
16 | out_indices=(1, 3, 16),
17 | norm_cfg=norm_cfg),
18 | decode_head=dict(
19 | type='LRASPPHead',
20 | in_channels=(16, 24, 960),
21 | in_index=(0, 1, 2),
22 | channels=128,
23 | input_transform='multiple_select',
24 | dropout_ratio=0.1,
25 | num_classes=19,
26 | norm_cfg=norm_cfg,
27 | act_cfg=dict(type='ReLU'),
28 | align_corners=False,
29 | loss_decode=dict(
30 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
31 | # model training and testing settings
32 | train_cfg=dict(),
33 | test_cfg=dict(mode='whole'))
34 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/models/segformer_mit-b0.py:
--------------------------------------------------------------------------------
1 | # model settings
2 | norm_cfg = dict(type='SyncBN', requires_grad=True)
3 | data_preprocessor = dict(
4 | type='SegDataPreProcessor',
5 | mean=[123.675, 116.28, 103.53],
6 | std=[58.395, 57.12, 57.375],
7 | bgr_to_rgb=True,
8 | pad_val=0,
9 | seg_pad_val=255)
10 | model = dict(
11 | type='EncoderDecoder',
12 | data_preprocessor=data_preprocessor,
13 | pretrained=None,
14 | backbone=dict(
15 | type='MixVisionTransformer',
16 | in_channels=3,
17 | embed_dims=32,
18 | num_stages=4,
19 | num_layers=[2, 2, 2, 2],
20 | num_heads=[1, 2, 5, 8],
21 | patch_sizes=[7, 3, 3, 3],
22 | sr_ratios=[8, 4, 2, 1],
23 | out_indices=(0, 1, 2, 3),
24 | mlp_ratio=4,
25 | qkv_bias=True,
26 | drop_rate=0.0,
27 | attn_drop_rate=0.0,
28 | drop_path_rate=0.1),
29 | decode_head=dict(
30 | type='SegformerHead',
31 | in_channels=[32, 64, 160, 256],
32 | in_index=[0, 1, 2, 3],
33 | channels=256,
34 | dropout_ratio=0.1,
35 | num_classes=19,
36 | norm_cfg=norm_cfg,
37 | align_corners=False,
38 | loss_decode=dict(
39 | type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
40 | # model training and testing settings
41 | train_cfg=dict(),
42 | test_cfg=dict(mode='whole'))
43 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/schedules/schedule_160k.py:
--------------------------------------------------------------------------------
1 | # optimizer
2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
3 | optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer, clip_grad=None)
4 | # learning policy
5 | param_scheduler = [
6 | dict(
7 | type='PolyLR',
8 | eta_min=1e-4,
9 | power=0.9,
10 | begin=0,
11 | end=160000,
12 | by_epoch=False)
13 | ]
14 | # training schedule for 160k
15 | train_cfg = dict(
16 | type='IterBasedTrainLoop', max_iters=160000, val_interval=16000)
17 | val_cfg = dict(type='ValLoop')
18 | test_cfg = dict(type='TestLoop')
19 | default_hooks = dict(
20 | timer=dict(type='IterTimerHook'),
21 | logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
22 | param_scheduler=dict(type='ParamSchedulerHook'),
23 | checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=16000),
24 | sampler_seed=dict(type='DistSamplerSeedHook'),
25 | visualization=dict(type='SegVisualizationHook'))
26 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/schedules/schedule_20k.py:
--------------------------------------------------------------------------------
1 | # optimizer
2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
3 | optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer, clip_grad=None)
4 | # learning policy
5 | param_scheduler = [
6 | dict(
7 | type='PolyLR',
8 | eta_min=1e-4,
9 | power=0.9,
10 | begin=0,
11 | end=20000,
12 | by_epoch=False)
13 | ]
14 | # training schedule for 20k
15 | train_cfg = dict(type='IterBasedTrainLoop', max_iters=20000, val_interval=2000)
16 | val_cfg = dict(type='ValLoop')
17 | test_cfg = dict(type='TestLoop')
18 | default_hooks = dict(
19 | timer=dict(type='IterTimerHook'),
20 | logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
21 | param_scheduler=dict(type='ParamSchedulerHook'),
22 | checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=2000),
23 | sampler_seed=dict(type='DistSamplerSeedHook'),
24 | visualization=dict(type='SegVisualizationHook'))
25 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/schedules/schedule_240k.py:
--------------------------------------------------------------------------------
1 | # optimizer
2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
3 | optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer, clip_grad=None)
4 | # learning policy
5 | param_scheduler = [
6 | dict(
7 | type='PolyLR',
8 | eta_min=1e-4,
9 | power=0.9,
10 | begin=0,
11 | end=240000,
12 | by_epoch=False)
13 | ]
14 | # training schedule for 240k
15 | train_cfg = dict(
16 | type='IterBasedTrainLoop', max_iters=240000, val_interval=24000)
17 | val_cfg = dict(type='ValLoop')
18 | test_cfg = dict(type='TestLoop')
19 | default_hooks = dict(
20 | timer=dict(type='IterTimerHook'),
21 | logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
22 | param_scheduler=dict(type='ParamSchedulerHook'),
23 | checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=24000),
24 | sampler_seed=dict(type='DistSamplerSeedHook'),
25 | visualization=dict(type='SegVisualizationHook'))
26 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/schedules/schedule_25k.py:
--------------------------------------------------------------------------------
1 | # optimizer
2 | optimizer = dict(type='AdamW', lr=0.001, weight_decay=0.1)
3 | optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer, clip_grad=None)
4 | # learning policy
5 | param_scheduler = [
6 | dict(
7 | type='LinearLR', start_factor=3e-2, begin=0, end=12000,
8 | by_epoch=False),
9 | dict(
10 | type='PolyLRRatio',
11 | eta_min_ratio=3e-2,
12 | power=0.9,
13 | begin=12000,
14 | end=24000,
15 | by_epoch=False),
16 | dict(type='ConstantLR', by_epoch=False, factor=1, begin=24000, end=25000)
17 | ]
18 | # training schedule for 25k
19 | train_cfg = dict(type='IterBasedTrainLoop', max_iters=25000, val_interval=1000)
20 | val_cfg = dict(type='ValLoop')
21 | test_cfg = dict(type='TestLoop')
22 | default_hooks = dict(
23 | timer=dict(type='IterTimerHook'),
24 | logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
25 | param_scheduler=dict(type='ParamSchedulerHook'),
26 | checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=2000),
27 | sampler_seed=dict(type='DistSamplerSeedHook'),
28 | visualization=dict(type='SegVisualizationHook'))
29 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/schedules/schedule_320k.py:
--------------------------------------------------------------------------------
1 | # optimizer
2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
3 | optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer, clip_grad=None)
4 | # learning policy
5 | param_scheduler = [
6 | dict(
7 | type='PolyLR',
8 | eta_min=1e-4,
9 | power=0.9,
10 | begin=0,
11 | end=320000,
12 | by_epoch=False)
13 | ]
14 | # training schedule for 320k
15 | train_cfg = dict(
16 | type='IterBasedTrainLoop', max_iters=320000, val_interval=32000)
17 | val_cfg = dict(type='ValLoop')
18 | test_cfg = dict(type='TestLoop')
19 | default_hooks = dict(
20 | timer=dict(type='IterTimerHook'),
21 | logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
22 | param_scheduler=dict(type='ParamSchedulerHook'),
23 | checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=32000),
24 | sampler_seed=dict(type='DistSamplerSeedHook'),
25 | visualization=dict(type='SegVisualizationHook'))
26 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/schedules/schedule_40k.py:
--------------------------------------------------------------------------------
1 | # optimizer
2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
3 | optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer, clip_grad=None)
4 | # learning policy
5 | param_scheduler = [
6 | dict(
7 | type='PolyLR',
8 | eta_min=1e-4,
9 | power=0.9,
10 | begin=0,
11 | end=40000,
12 | by_epoch=False)
13 | ]
14 | # training schedule for 40k
15 | train_cfg = dict(type='IterBasedTrainLoop', max_iters=40000, val_interval=4000)
16 | val_cfg = dict(type='ValLoop')
17 | test_cfg = dict(type='TestLoop')
18 | default_hooks = dict(
19 | timer=dict(type='IterTimerHook'),
20 | logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
21 | param_scheduler=dict(type='ParamSchedulerHook'),
22 | checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=4000),
23 | sampler_seed=dict(type='DistSamplerSeedHook'),
24 | visualization=dict(type='SegVisualizationHook'))
25 |
--------------------------------------------------------------------------------
/downstream/seg/configs/_base_/schedules/schedule_80k.py:
--------------------------------------------------------------------------------
1 | # optimizer
2 | optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
3 | optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer, clip_grad=None)
4 | # learning policy
5 | param_scheduler = [
6 | dict(
7 | type='PolyLR',
8 | eta_min=1e-4,
9 | power=0.9,
10 | begin=0,
11 | end=80000,
12 | by_epoch=False)
13 | ]
14 | # training schedule for 80k
15 | train_cfg = dict(type='IterBasedTrainLoop', max_iters=80000, val_interval=8000)
16 | val_cfg = dict(type='ValLoop')
17 | test_cfg = dict(type='TestLoop')
18 | default_hooks = dict(
19 | timer=dict(type='IterTimerHook'),
20 | logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
21 | param_scheduler=dict(type='ParamSchedulerHook'),
22 | checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=8000),
23 | sampler_seed=dict(type='DistSamplerSeedHook'),
24 | visualization=dict(type='SegVisualizationHook'))
25 |
--------------------------------------------------------------------------------
/downstream/seg/tools/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/downstream/seg/tools/.DS_Store
--------------------------------------------------------------------------------
/downstream/seg/tools/dist_test.sh:
--------------------------------------------------------------------------------
1 | CONFIG=$1
2 | CHECKPOINT=$2
3 | GPUS=$3
4 | NNODES=${NNODES:-1}
5 | NODE_RANK=${NODE_RANK:-0}
6 | PORT=${PORT:-29500}
7 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"}
8 |
9 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
10 | python -m torch.distributed.launch \
11 | --nnodes=$NNODES \
12 | --node_rank=$NODE_RANK \
13 | --master_addr=$MASTER_ADDR \
14 | --nproc_per_node=$GPUS \
15 | --master_port=$PORT \
16 | $(dirname "$0")/test.py \
17 | $CONFIG \
18 | $CHECKPOINT \
19 | --launcher pytorch \
20 | ${@:4}
21 |
--------------------------------------------------------------------------------
/downstream/seg/tools/dist_train.sh:
--------------------------------------------------------------------------------
1 | CONFIG=$1
2 | GPUS=$2
3 | NNODES=${NNODES:-1}
4 | NODE_RANK=${NODE_RANK:-0}
5 | PORT=${PORT:-29500}
6 | MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"}
7 |
8 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
9 | python -m torch.distributed.launch \
10 | --nnodes=$NNODES \
11 | --node_rank=$NODE_RANK \
12 | --master_addr=$MASTER_ADDR \
13 | --nproc_per_node=$GPUS \
14 | --master_port=$PORT \
15 | $(dirname "$0")/train.py \
16 | $CONFIG \
17 | --launcher pytorch ${@:3}
18 |
--------------------------------------------------------------------------------
/downstream/seg/tools/slurm_test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -x
4 |
5 | PARTITION=$1
6 | JOB_NAME=$2
7 | CONFIG=$3
8 | CHECKPOINT=$4
9 | GPUS=${GPUS:-4}
10 | GPUS_PER_NODE=${GPUS_PER_NODE:-4}
11 | CPUS_PER_TASK=${CPUS_PER_TASK:-5}
12 | PY_ARGS=${@:5}
13 | SRUN_ARGS=${SRUN_ARGS:-""}
14 |
15 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
16 | srun -p ${PARTITION} \
17 | --job-name=${JOB_NAME} \
18 | --gres=gpu:${GPUS_PER_NODE} \
19 | --ntasks=${GPUS} \
20 | --ntasks-per-node=${GPUS_PER_NODE} \
21 | --cpus-per-task=${CPUS_PER_TASK} \
22 | --kill-on-bad-exit=1 \
23 | ${SRUN_ARGS} \
24 | python -u tools/test.py ${CONFIG} ${CHECKPOINT} --launcher="slurm" ${PY_ARGS}
25 |
--------------------------------------------------------------------------------
/downstream/seg/tools/slurm_train.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -x
4 |
5 | PARTITION=$1
6 | JOB_NAME=$2
7 | CONFIG=$3
8 | GPUS=${GPUS:-4}
9 | GPUS_PER_NODE=${GPUS_PER_NODE:-4}
10 | CPUS_PER_TASK=${CPUS_PER_TASK:-5}
11 | SRUN_ARGS=${SRUN_ARGS:-""}
12 | PY_ARGS=${@:4}
13 |
14 | PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
15 | srun -p ${PARTITION} \
16 | --job-name=${JOB_NAME} \
17 | --gres=gpu:${GPUS_PER_NODE} \
18 | --ntasks=${GPUS} \
19 | --ntasks-per-node=${GPUS_PER_NODE} \
20 | --cpus-per-task=${CPUS_PER_TASK} \
21 | --kill-on-bad-exit=1 \
22 | ${SRUN_ARGS} \
23 | python -u tools/train.py ${CONFIG} --launcher="slurm" ${PY_ARGS}
24 |
--------------------------------------------------------------------------------
/loss/__init__.py:
--------------------------------------------------------------------------------
1 | import glob
2 | import importlib
3 |
4 | from util.registry import Registry
5 | LOSS = Registry('Loss')
6 |
7 | files = glob.glob('loss/[!_]*.py')
8 | for file in files:
9 | model_lib = importlib.import_module(file.split('.')[0].replace('/', '.'))
10 |
11 |
12 | def get_loss_terms(loss_terms, device='cpu'):
13 | terms = {}
14 | for t in loss_terms:
15 | t = {k: v for k, v in t.items()}
16 | t_type = t.pop('type')
17 | t_name = t.pop('name')
18 | terms[t_name] = LOSS.get_module(t_type)(**t).to(device).eval()
19 | return terms
20 |
--------------------------------------------------------------------------------
/loss/base_loss.py:
--------------------------------------------------------------------------------
1 | import torch.nn as nn
2 | from . import LOSS
3 |
4 | __all__ = ['L1Loss', 'MSELoss']
5 |
6 |
7 | @LOSS.register_module
8 | class L1Loss(nn.L1Loss):
9 | def __init__(self, lam=1):
10 | super(L1Loss, self).__init__()
11 | self.lam = lam
12 |
13 | def forward(self, input, target):
14 | return super(L1Loss, self).forward(input, target) * self.lam
15 |
16 |
17 | @LOSS.register_module
18 | class MSELoss(nn.MSELoss):
19 | def __init__(self, lam=1):
20 | super(MSELoss, self).__init__()
21 | self.lam = lam
22 |
23 | def forward(self, input, target):
24 | return super(MSELoss, self).forward(input, target) * self.lam
25 |
--------------------------------------------------------------------------------
/model/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/model/.DS_Store
--------------------------------------------------------------------------------
/model/cls_factory.py:
--------------------------------------------------------------------------------
1 | import model.lib_teacher.tresnet_v2
2 | import model.mobilemamba.mobilemamba
3 |
4 | from timm.models._registry import _model_entrypoints
5 | from . import MODEL
6 |
7 | for timm_name, timm_fn in _model_entrypoints.items():
8 | MODEL.register_module(timm_fn, f'timm_{timm_name}')
9 |
10 | if __name__ == '__main__':
11 | print()
12 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_ndstate.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_ndstate.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd2.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<2, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<2, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<2, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd3.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<3, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<3, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<3, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd4.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_bwd_cuda<4, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<4, at::Half, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<4, at::BFloat16, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd2.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<2, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<2, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<2, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd3.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<3, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<3, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<3, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd4.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_nrow.cuh"
5 |
6 | template void selective_scan_fwd_cuda<4, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<4, at::Half, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<4, at::BFloat16, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 |
10 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_core_bwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_bwd_kernel_oflex.cuh"
5 |
6 | template void selective_scan_bwd_cuda<1, float, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
7 | template void selective_scan_bwd_cuda<1, at::Half, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
8 | template void selective_scan_bwd_cuda<1, at::BFloat16, float, float>(SSMParamsBwd ¶ms, cudaStream_t stream);
9 | template void selective_scan_bwd_cuda<1, at::Half, float, at::Half>(SSMParamsBwd ¶ms, cudaStream_t stream);
10 | template void selective_scan_bwd_cuda<1, at::BFloat16, float, at::BFloat16>(SSMParamsBwd ¶ms, cudaStream_t stream);
11 |
12 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_core_fwd.cu:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * Copyright (c) 2023, Tri Dao.
3 | ******************************************************************************/
4 | #include "selective_scan_fwd_kernel_oflex.cuh"
5 |
6 | template void selective_scan_fwd_cuda<1, float, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
7 | template void selective_scan_fwd_cuda<1, at::Half, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
8 | template void selective_scan_fwd_cuda<1, at::BFloat16, float, float>(SSMParamsBase ¶ms, cudaStream_t stream);
9 | template void selective_scan_fwd_cuda<1, at::Half, float, at::Half>(SSMParamsBase ¶ms, cudaStream_t stream);
10 | template void selective_scan_fwd_cuda<1, at::BFloat16, float, at::BFloat16>(SSMParamsBase ¶ms, cudaStream_t stream);
11 |
12 |
--------------------------------------------------------------------------------
/model/lib_mamba/kernels/selective_scan/csrc/selective_scan/static_switch.h:
--------------------------------------------------------------------------------
1 | // Inspired by https://github.com/NVIDIA/DALI/blob/main/include/dali/core/static_switch.h
2 | // and https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/Dispatch.h
3 |
4 | #pragma once
5 |
6 | /// @param COND - a boolean expression to switch by
7 | /// @param CONST_NAME - a name given for the constexpr bool variable.
8 | /// @param ... - code to execute for true and false
9 | ///
10 | /// Usage:
11 | /// ```
12 | /// BOOL_SWITCH(flag, BoolConst, [&] {
13 | /// some_function(...);
14 | /// });
15 | /// ```
16 | #define BOOL_SWITCH(COND, CONST_NAME, ...) \
17 | [&] { \
18 | if (COND) { \
19 | constexpr bool CONST_NAME = true; \
20 | return __VA_ARGS__(); \
21 | } else { \
22 | constexpr bool CONST_NAME = false; \
23 | return __VA_ARGS__(); \
24 | } \
25 | }()
26 |
--------------------------------------------------------------------------------
/model/lib_teacher/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/model/lib_teacher/__init__.py
--------------------------------------------------------------------------------
/run.py:
--------------------------------------------------------------------------------
1 | import argparse
2 | from configs import get_cfg
3 | from util.net import init_training
4 | from util.util import run_pre, init_checkpoint
5 | from trainer import get_trainer
6 | import warnings
7 | warnings.filterwarnings("ignore")
8 |
9 |
10 | def main():
11 | parser = argparse.ArgumentParser()
12 | parser.add_argument('-c', '--cfg_path', default='configs/mobilemamba/mobilemamba_t2.py')
13 | parser.add_argument('-m', '--mode', default='train', choices=['train', 'test', 'test_net', 'ft', 'search'])
14 | parser.add_argument('--sleep', type=int, default=-1)
15 | parser.add_argument('--memory', type=int, default=-1)
16 | parser.add_argument('--dist_url', default='env://', type=str, help='url used to set up distributed training')
17 | parser.add_argument('--logger_rank', default=0, type=int, help='GPU id to use.')
18 | parser.add_argument('opts', help='path.key=value', default=None, nargs=argparse.REMAINDER,)
19 | cfg_terminal = parser.parse_args()
20 | cfg = get_cfg(cfg_terminal)
21 | run_pre(cfg)
22 | init_training(cfg)
23 | init_checkpoint(cfg)
24 | trainer = get_trainer(cfg)
25 | trainer.run()
26 |
27 |
28 | if __name__ == '__main__':
29 | main()
30 |
--------------------------------------------------------------------------------
/trainer/__init__.py:
--------------------------------------------------------------------------------
1 | import glob
2 | import importlib
3 |
4 | from util.registry import Registry
5 | TRAINER = Registry('Trainer')
6 |
7 | files = glob.glob('trainer/[!_]*.py')
8 | for file in files:
9 | model_lib = importlib.import_module(file.split('.')[0].replace('/', '.'))
10 |
11 |
12 | def get_trainer(cfg):
13 | return TRAINER.get_module(cfg.trainer.name)(cfg)
14 |
--------------------------------------------------------------------------------
/util/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewandofskee/MobileMamba/0980f48a23d232e0f2e86e740eccab038c8fd760/util/__init__.py
--------------------------------------------------------------------------------
/util/registry.py:
--------------------------------------------------------------------------------
1 |
2 | class Registry:
3 |
4 | def __init__(self, name):
5 | self.name = name
6 | self.name_to_fn = dict()
7 |
8 | def register_module(self, fn, name=None):
9 | module_name = name if name else fn.__name__
10 | self.name_to_fn[module_name] = fn
11 | return fn
12 |
13 | def __len__(self):
14 | return len(self.name_to_fn)
15 |
16 | def __contains__(self, name):
17 | return name in self.name_to_fn.keys()
18 |
19 | def get_module(self, name):
20 | if self.__contains__(name):
21 | return self.name_to_fn[name]
22 | else:
23 | raise ValueError('invalid module: {}'.format(name))
24 |
--------------------------------------------------------------------------------