## Motivation
This is essentially #2535 that I had intended to submit to the `dev-1.x`
branch but accidentally submitted it directly to the `1.x` branch
(apologies!). This also got approved possibly because the core devs also
didn't realize this.
The problem is that now `1.x` and `dev-1.x` are out of sync -- the
changes introduced by #2535 will never be reflected in `dev-1.x`.
## Modification
I'm proposing this "backward-merge" so that `1.x` and `dev-1.x` can be
in sync again. If you look at "files changed", they are exactly the
changes introduced by #2535.
Co-authored-by: MeowZheng <meowzheng@outlook.com>
## Motivation
Calling `mmseg.utils.register_all_modules` will import `MaskFormerHead`
and `Mask2FormerHead`, it will crash if mmdet is not installed as `None`
cannot be initialized.
## Modification
- Modify `MMDET_MaskFormerHead=BaseModule` and `MMDET_Mask2FormerHead =
BaseModule` when cannot import from mmdet
* knet first commit
* fix import error in knet
* remove kernel update head from decoder head
* [Feature] Add kenerl updation for some decoder heads.
* [Feature] Add kenerl updation for some decoder heads.
* directly use forward_feature && modify other 3 decoder heads
* remover kernel_update attr
* delete unnecessary variables in forward function
* delete kernel update function
* delete kernel update function
* delete kernel_generate_head
* add unit test & comments in knet.py
* add copyright to fix lint error
* modify config names of knet
* rename swin-l 640
* upload models&logs and refactor knet_head.py
* modify docstrings and add some ut
* add url, modify docstring and add loss ut
* modify docstrings
* fix export onnx inference difference type Cast error
* fix export onnx inference difference type Cast error.
* use yapf format
* use same device type with pairwise_weight
* fix single loss type
* fix error in ohem & point_head
* fix coverage miss
* fix uncoverage error of PointHead loss
* fix coverage miss
* fix uncoverage error of PointHead loss
* nn.modules.container.ModuleList to nn.ModuleList
* more simple format
* merge unittest def
* [Feature]Segformer re-implementation
* Using act_cfg and norm_cfg to control activation and normalization
* Split this PR into several little PRs
* Fix lint error
* Remove SegFormerHead
* [Feature] Add segformer decode head and related train config
* Add ade20K trainval support for segformer
1. Add related train and val configs;
2. Add AlignedResize;
* Set arg: find_unused_parameters = True
* parameters init refactor
* 1. Refactor segformer backbone parameters init;
2. Remove rebundant functions and unit tests;
* Remove rebundant codes
* Replace Linear Layer to 1X1 Conv
* Use nn.ModuleList to refactor segformer head.
* Remove local to_xtuple
* 1. Remove rebundant codes;
2. Modify module name;
* Refactor the backbone of segformer using mmcv.cnn.bricks.transformer.py
* Fix some code logic bugs.
* Add mit_convert.py to match pretrain keys of segformer.
* Resolve some comments.
* 1. Add some assert to ensure right params;
2. Support flexible peconv position;
* Add pe_index assert and fix unit test.
* 1. Add doc string for MixVisionTransformer;
2. Add some unit tests for MixVisionTransformer;
* Use hw_shape to pass shape of feature map.
* 1. Fix doc string of MixVisionTransformer;
2. Simplify MixFFN;
3. Modify H, W to hw_shape;
* Add more unit tests.
* Add doc string for shape convertion functions.
* Add some unit tests to improve code coverage.
* Fix Segformer backbone pretrain weights match bug.
* Modify configs of segformer.
* resolve the shape convertion functions doc string.
* Add pad_to_patch_size arg.
* Support progressive test with fewer memory cost.
* Modify default value of pad_to_patch_size arg.
* Temp code
* Using processor to refactor evaluation workflow.
* refactor eval hook.
* Fix process bar.
* Fix middle save argument.
* Modify some variable name of dataset evaluate api.
* Modify some viriable name of eval hook.
* Fix some priority bugs of eval hook.
* Fix some bugs about model loading and eval hook.
* Add ade20k 640x640 dataset.
* Fix related segformer configs.
* Depreciated efficient_test.
* Fix training progress blocked by eval hook.
* Depreciated old test api.
* Modify error patch size.
* Fix pretrain of mit_b0
* Fix the test api error.
* Modify dataset base config.
* Fix test api error.
* Modify outer api.
* Build a sampler test api.
* TODO: Refactor format_results.
* Modify variable names.
* Fix num_classes bug.
* Fix sampler index bug.
* Fix grammaly bug.
* Add part of benchmark results.
* Support batch sampler.
* More readable test api.
* Remove some command arg and fix eval hook bug.
* Support format-only arg.
* Modify format_results of datasets.
* Modify tool which use test apis.
* Update readme.
* Update readme of segformer.
* Updata readme of segformer.
* Update segformer readme and fix segformer mit_b4.
* Update readme of segformer.
* Clean AlignedResize related config.
* Clean code from pr #709
* Clean code from pr #709
* Add 512x512 segformer_mit-b5.
* Fix lint.
* Fix some segformer head bugs.
* Add segformer unit tests.
* Replace AlignedResize to ResizeToMultiple.
* Modify readme of segformer.
* Fix bug of ResizeToMultiple.
* Add ResizeToMultiple unit tests.
* Resolve conflict.
* Simplify the implementation of ResizeToMultiple.
* Update test results.
* Fix multi-scale test error when resize_ratio=1.75 and input size=640x640.
* Update segformer results.
* Update Segformer results.
* Fix some url bugs and pipelines bug.
* Move ckpt convertion to tools.
* Add segformer official pretrain weights usage.
* Clean redundant codes.
* Remove redundant codes.
* Unfied format.
* Add description for segformer converter.
* Update workers.