You need to sign in or sign up before continuing.
- Jul 04, 2023
-
-
谢昕辰 authored
Co-authored-by:
CSH <40987381+csatsurnh@users.noreply.github.com>
-
- Jun 26, 2023
-
-
谢昕辰 authored
## Motivation Change the dependency `mmcls` to `mmpretrain` ## Modification - modify `mmcls` to `mmpretrain` - modify CI requirements ## BC-breaking (Optional) If users have installed mmcls but not install mmpretrain, it might raise some error.
-
- Apr 06, 2023
-
-
谢昕辰 authored
-
- Apr 03, 2023
-
-
任祉涵 authored
-
- Mar 31, 2023
-
-
谢昕辰 authored
## Motivation - Create the `main` branch ## Modification Modify links from `dev-1.x` to `main`
-
- Mar 03, 2023
-
-
谢昕辰 authored
as title
-
Miao Zheng authored
-
- Feb 24, 2023
-
-
Miao Zheng authored
## Motivation As the mmdet and mmcls are not very stabel, and mim can install repo from source code, we remove them from mminstall and they won't be installed automatically when run `mim install mmsegmentation` ## Modification 1. remove mmdet and mcls from mminstall 2. add explanation in faq --------- Co-authored-by:
MengzhangLI <mcmong@pku.edu.cn>
-
- Feb 01, 2023
-
-
谢昕辰 authored
as title
-
Qingyun authored
## Motivation The DETR-related modules have been refactored in open-mmlab/mmdetection#8763, which causes breakings of MaskFormer and Mask2Former in both MMDetection (has been fixed in open-mmlab/mmdetection#9515) and MMSegmentation. This pr fix the bugs in MMSegmentation. ### TO-DO List - [x] update configs - [x] check and modify data flow - [x] fix unit test - [x] aligning inference - [x] write a ckpt converter - [x] write ckpt update script - [x] update model zoo - [x] update model link in readme - [x] update [faq.md](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/docs/en/notes/faq.md#installation ) ## Tips of Fixing other implementations based on MaskXFormer of mmseg 1. The Transformer modules should be built directly. The original building with register manner has been refactored. 2. The config requires to be modified. Delete `type` and modify several keys, according to the modifications in this pr. 3. The `batch_first` is set `True` uniformly in the new implementations. Hence the data flow requires to be transposed and config of `batch_first` needs to be modified. 4. The checkpoint trained on the old implementation should be converted to be used in the new one. ### Convert script ```Python import argparse from copy import deepcopy from collections import OrderedDict import torch from mmengine.config import Config from mmseg.models import build_segmentor from mmseg.utils import register_all_modules register_all_modules(init_default_scope=True) def parse_args(): parser = argparse.ArgumentParser( description='MMSeg convert MaskXFormer model, by Li-Qingyun') parser.add_argument('Mask_what_former', type=int, help='Mask what former, can be a `1` or `2`', choices=[1, 2]) parser.add_argument('CFG_FILE', help='config file path') parser.add_argument('OLD_CKPT_FILEPATH', help='old ckpt file path') parser.add_argument('NEW_CKPT_FILEPATH', help='new ckpt file path') args = parser.parse_args() return args args = parse_args() def get_new_name(old_name: str): new_name = old_name if 'encoder.layers' in new_name: new_name = new_name.replace('attentions.0', 'self_attn') new_name = new_name.replace('ffns.0', 'ffn') if 'decoder.layers' in new_name: if args.Mask_what_former == 2: # for Mask2Former new_name = new_name.replace('attentions.0', 'cross_attn') new_name = new_name.replace('attentions.1', 'self_attn') else: # for Mask2Former new_name = new_name.replace('attentions.0', 'self_attn') new_name = new_name.replace('attentions.1', 'cross_attn') return new_name def cvt_sd(old_sd: OrderedDict): new_sd = OrderedDict() for name, param in old_sd.items(): new_name = get_new_name(name) assert new_name not in new_sd new_sd[new_name] = param assert len(new_sd) == len(old_sd) return new_sd if __name__ == '__main__': cfg = Config.fromfile(args.CFG_FILE) model_cfg = cfg.model segmentor = build_segmentor(model_cfg) refer_sd = segmentor.state_dict() old_ckpt = torch.load(args.OLD_CKPT_FILEPATH) old_sd = old_ckpt['state_dict'] new_sd = cvt_sd(old_sd) print(segmentor.load_state_dict(new_sd)) new_ckpt = deepcopy(old_ckpt) new_ckpt['state_dict'] = new_sd torch.save(new_ckpt, args.NEW_CKPT_FILEPATH) print(f'{args.NEW_CKPT_FILEPATH} has been saved!') ``` Usage: ```bash # for example python ckpt4pr2532.py 1 configs/maskformer/maskformer_r50-d32_8xb2-160k_ade20k-512x512.py original_ckpts/maskformer_r50-d32_8xb2-160k_ade20k-512x512_20221030_182724-cbd39cc1.pth cvt_outputs/maskformer_r50-d32_8xb2-160k_ade20k-512x512_20221030_182724.pth python ckpt4pr2532.py 2 configs/mask2former/mask2former_r50_8xb2-160k_ade20k-512x512.py original_ckpts/mask2former_r50_8xb2-160k_ade20k-512x512_20221204_000055-4c62652d.pth cvt_outputs/mask2former_r50_8xb2-160k_ade20k-512x512_20221204_000055.pth ``` --------- Co-authored-by:
MeowZheng <meowzheng@outlook.com>
-
谢昕辰 authored
## Motivation Use the new fileio from mmengine https://github.com/open-mmlab/mmengine/pull/533 ## Modification 1. Use `mmengine.fileio` to repalce FileClient in mmseg/datasets 2. Use `mmengine.fileio` to repalce FileClient in mmseg/datasets/transforms 3. Use `mmengine.fileio` to repalce FileClient in mmseg/visualization ## BC-breaking (Optional) we modify all the dataset configurations, so please use the latest config file.
-
- Jan 30, 2023
-
-
谢昕辰 authored
-
- Dec 31, 2022
-
-
Miao Zheng authored
## Motivation To release 1.0.0rc3 ## Modification 1. Modify mmseg version 2. Add change log 3. Modify README 4. Modify faq 5. Revise docker file
-
- Dec 06, 2022
-
-
Miao Zheng authored
* Bump 1.0.0rc2 * typo
-
- Nov 02, 2022
- Aug 31, 2022
-
-
Miao Zheng authored
* [WIP] Refine documentation * get started done * config refine * train_test * refine user guides * add contribution * add contribution * refine visualization * advanced tutorial * advanced guides * tricks * refine zh doc * refactor changelog
-
- Aug 19, 2022
-
-
Miao Zheng authored
* [Doc] MMSeg 1.x Documentation * revise index
-
- Jul 05, 2022
-
-
xiexinch authored
-
- Mar 28, 2022
-
-
Rockey authored
* [Docs] add faq document * Update docs/en/faq.md Co-authored-by:
Junjun2016 <hejunjun@sjtu.edu.cn> * Update docs/zh_cn/faq.md Co-authored-by:
Junjun2016 <hejunjun@sjtu.edu.cn> * modify readme * modify index.rst Co-authored-by:
Junjun2016 <hejunjun@sjtu.edu.cn>
-