* Update workflow to add Windows CI
* Add some optional requirements to requirements/optional.txt
* Update setup.py
* Update PyTorch version in Windows CI
* Update CI and requirement
* Replace `tempfile.NamedTemporaryFile` to avoid unit test error on
Windows
* Update tests
* Update CI
* Add OpenCV installation
* Update CI
* Support HRNet
* Add HRNet configs
* Fix a bug in backward
* Add configs and update docs.
* Not use bias in conv before batch norm
* Defaults to use `norm_eval=False`
* Add unit tests and support out_channels in HRFuseScales
* Update checkpoint path
* Update docstring.
* Remove incorrect files
* Improve according to comments
* Support ConvNeXt
* Add configs of ConvNeXt
* Update dev scripts
* Update docs.
* Use new style README
* Add unit tests.
* Update README
* Imporve according to comments
* Modify refers to timm.
* Imporve according to comments
* Support features_only in TIMMBackbone
based on https://github.com/open-mmlab/mmsegmentation/pull/998
* update test for mmdet
* fix unit test for build_without_timm
* Update docstring
Co-authored-by: mzr1996 <mzr1996@163.com>
* Support to use `indices` to specify which samples to evaluate.
* Add KFoldDataset wrapper
* Rename 'K' to 'num_splits' accroding to sklearn
* Add `kfold-cross-valid.py`
* Add unit tests
* Add help doc and docstring
* Add cosine cool down lr updater
* Use ema hook
* Update decay mult
* Update configs.
* Update T2T-ViT readme and format all readme
* Update swin readme
* Update tnt readme
* Add docstring for `CosineAnnealingCooldownLrUpdaterHook`.
* Update t2t readme and metafile
* sampler bugfixes
* sampler bugfixes
* reorganize code
* minor fixes
* reorganize code
* minor fixes
* Use `mmcv.runner.get_dist_info` instead of `dist` package to get rank
and world size.
* Add `build_dataloader` unit tests and fix sampler's unit tests.
* Fix unit tests
* Fix unit tests
Co-authored-by: mzr1996 <mzr1996@163.com>
* Fix MobileNet V3 configs
* Refactor to support more powerful feature extraction.
* Add unit tests
* Fix unit test
* Imporve according to comments
* Update checkpoints path
* Fix unit tests
* Add docstring of `simple_test`
* Add docstring of `extract_feat`
* Update model zoo
* Support DeiT backbone.
* Use hook to automatically resize pos embed
* Update ViT training setting
* Add deit configs and update docs
* Fix vit arch assertion
* Remove useless init function
* Add unit tests.
* Fix resize_pos_embed for DeiT
* Improve according to comments.
* [Enhance] Imporve efficiency of precision, recall, f1_score and support.
* Fix bugs
* Use np.maximum since torch doesn't have maximum before torch 1.7
* Fix bug
* impl lamb
* Add unit tests
* Fix unit test
* Fix unit tests
* Use list instead of tuple in `__all__` according to PEP8
Co-authored-by: mzr1996 <mzr1996@163.com>
* Added NumClassCheckHook and CI tests
* Added HOOKS local registry. NumClassCheckHook and unit test files redistribution.
* Extended hook for supporting IterRunner & EpochRunner. Extended unit test.
* Simplification of ClassNumCheckHook. Minor changes.
* implement the conformer
* format code style
* format code style
* reuse the TransformerEncoderLayer in the vision_transformer.py
* Modify variable name
* delete unused params
* Remove warning info in Conformer head since it already exists in
Conformer.
* Rename some variables
* Add unit tests
* Use `getattr` instead of `get_submodule`.
* Remove some useless layers
* Refactor conformer and add configs
* Update configs and add metafile.
* Fix unit tests
* Update README
Co-authored-by: mzr1996 <mzr1996@163.com>
* Update swin_transformer.py
fix bug;
layer_norm 0,1,2,3 will be the same and resulted in an error when out_indices dict exceed one element.
* fix bug, layer_norm 0,1,2,3
* Add unit tests for multiple out_indices
Co-authored-by: cxiang26 <cq.xiang@foxmail.com>
Co-authored-by: mzr1996 <mzr1996@163.com>
* fix dataset wrapper bug and add unit tests
* fix dataset wrapper bug and add unit tests
* update unit tests
* fix lint
* align interface to mmdet
* update unit tests
* refactor resize, test tobe done
* resize reimpl according to discussion; add pad
* minor fixes and add tests
* minor fixes on docstring
* add additional unit test
* reformat resize and pad
* revise code and docstr according to the comments
* add vis lr
* add doc
* Update doc and rm load_json_log in analysis
* Update docs
* add unit tests and update docstring
* fix unit-tests
* Use DummyIterBasedRunner and DummyEpochBasedRunner to simulate training
process.
* rm function val and add judge
* update docs
* improve english expression
* Update docs/tools/visualization.md
Co-authored-by: Ma Zerun <mzr1996@163.com>
* fix typo and ImageNet datasize
* fix typo
* update example
Co-authored-by: mzr1996 <mzr1996@163.com>
* add imagnet21k
* Update unit test
* update imaenet21k
* use slots
* use slots
* rename Data_item to ImageInfo
* add unit tests
* Update unit tests
* rm some print
* update unit tests
* fix lint
* remove default value of pipeline
* Add Res2Net from mmdet, and change it to mmcls style.
* Align structure with official repo
* Support `deep_stem` and `avg_down` option
* Add Res2Net configs
* Add metafile&README and update model zoo
* Add unit tests
* Imporve docstring.
* Improve according to comments.
* [Squash] Refator ViT (from #295)
* Use base variable to simplify auto_aug setting
* Use common PatchEmbed, remove HybridEmbed and refactor ViT init
structure.
* Add `output_cls_token` option and change the output format of ViT and
input format of ViT head.
* Update unit tests and add test for `output_cls_token`.
* Support out_indices.
* Standardize config files
* Support resize position embedding.
* Add readme file of vit
* Rename config file
* Improve docs about ViT.
* Update docstring
* Use local version `MultiheadAttention` instead of mmcv version.
* Fix MultiheadAttention
* Support `qk_scale` argument in `MultiheadAttention`
* Improve docs and change `layer_cfg` to `layer_cfgs` and support
sequence.
* Use init_cfg to init Linear layer in VisionTransformerHead
* update metafile
* Update checkpoints and configs
* Imporve docstring.
* Update README
* Revert GAP modification.
* Add `BaseImshowContextmanager` and `ImshowInfosContextManager` to reuse
matplotlib figure.
* Use context manager to implement `imshow_infos`
* Add unit tests.
* More general base context manager.
* unit tests for context manager.
* Improve docstring.
* Fix context manager exit cannot close figure when matplotlib>=3.4.0
* Fix unit tests
* Support inline backend in visualization.
* Add RepVGG code.
* Add se_module as plugin.
* Add the repvggA0 primitive config
* Change repvggA0.py to fit mmcls
* Add RepVGG configs
* Add repvgg_to_mmcls
* Add tools/deployment/convert_repvggblock_param_to_deploy.py
* Change configs/repvgg/README.md
* Streamlining the number of configuration files.
* Fix lints
* Delete plugins
* Delete code about plugin.
* Modify the code for using se module.
* Modify config to fit repvgg with se.
* Change se_cfg to allow loading of pre-training parameters.
* Reduce the complexity of the configuration file.
* Finsh unitest for repvgg.
* Fix bug about se in repvgg_to_mmcls.
* Rename convert_repvggblock_param_to_deploy.py to reparameterize_repvgg.py, and delete setting about device.
* test commit
* test commit
* test commit command
* Modify repvgg.py to make the code more readable.
* Add value=0 in F.pad()
* Add se_cfg to arch_settings.
* Fix bug.
* modeify some attr name and Update unit tests
* rename stage_0 to stem and branch_identity to branch_norm
* update unit tests
* add m.eval in unit tests
* [Enhance] Enhence SE layer to support custom squeeze channels. (#417)
* add enhenced SE
* Update
* rm basechannel
* fix docstring
* Update se_layer.py
fix docstring
* [Docs] Add algorithm readme and update meta yml (#418)
* Add README.md for models without checkpoints.
* Update model-index.yml
* Update metafile.yml of seresnet
* [Enhance] Add `hparams` argument in `AutoAugment` and `RandAugment` and some other improvement. (#398)
* Add hparams argument in `AutoAugment` and `RandAugment`.
And `pad_val` supports sequence instead of tuple only.
* Add unit tests for `AutoAugment` and `hparams` in `RandAugment`.
* Use smaller test image to speed up uni tests.
* Use hparams to simplify RandAugment config in swin-transformer.
* Rename augment config name from `pipeline` to `pipelines`.
* Add some commnet ad docstring.
* [Feature] Support classwise weight in losses (#388)
* Add classwise weight in losses:CE,BCE,softBCE
* Update unit test
* rm some extra code
* rm some extra code
* fix broadcast
* fix broadcast
* update unit tests
* use new_tensor
* fix lint
* [Enhance] Better result visualization (#419)
* Imporve result visualization to support wait time and change the backend
to matplotlib.
* Add unit test for visualization
* Add adaptive dpi function
* Rename `imshow_cls_result` to `imshow_infos`.
* Support str in `imshow_infos`
* Improve docstring.
* Bump version to v0.15.0 (#426)
* [CI] Add PyTorch 1.9 and Python 3.9 build workflow, and remove some CI. (#422)
* Add PyTorch 1.9 build workflow, and remove some CI.
* Add Python 3.9 CI
* Show Python 3.9 support.
* [Enhance] Rename the option `--options` in some tools to `--cfg-options`. (#425)
* [Docs] Fix sphinx version (#429)
* [Docs] Add `CITATION.cff` (#428)
* Add CITATION.cff
* Fix typo in setup.py
* Change author in setup.py
* modeify some attr name and Update unit tests
* rename stage_0 to stem and branch_identity to branch_norm
* update unit tests
* add m.eval in unit tests
* Update unit tests
* refactor
* refactor
* Alignment inference accuracy
* Update configs, readme and metafile
* Update readme
* return tuple and fix metafile
* fix unit test
* rm regnet and classifiers changes
* update auto_aug
* update metafile & readme
* use delattr
* rename cfgs
* Update checkpoint url
* Update readme
* Rename config files.
* Update readme and metafile
* add comment
* Update mmcls/models/backbones/repvgg.py
Co-authored-by: Ma Zerun <mzr1996@163.com>
* Update docstring
* Improve docstring.
* Update unittest_testblock
Co-authored-by: Ezra-Yu <1105212286@qq.com>
Co-authored-by: Ma Zerun <mzr1996@163.com>
* Defaults to return tuple in all backbones.
* Compat downstream of swin transformer.
* Support tuple input for multi label head and stacked head.
* Fix backbone unit tests for tuple output.
* Add downstream inference unit tests for mmdet.
* Update gitignore
* Add unit tests for `return_tuple` option
* Add unit tests for head input tuple.
* Add warning in `simple_test`
* Add TIMMBackbone return tuple.
* Modify timm backbone unit test.
* Add wrapper to use backbones from timm
* Add tests
* Remove timm from optional deps and modify GitHub workflow.
Co-authored-by: mzr1996 <mzr1996@163.com>
* Imporve result visualization to support wait time and change the backend
to matplotlib.
* Add unit test for visualization
* Add adaptive dpi function
* Rename `imshow_cls_result` to `imshow_infos`.
* Support str in `imshow_infos`
* Improve docstring.
* Add classwise weight in losses:CE,BCE,softBCE
* Update unit test
* rm some extra code
* rm some extra code
* fix broadcast
* fix broadcast
* update unit tests
* use new_tensor
* fix lint
* Add hparams argument in `AutoAugment` and `RandAugment`.
And `pad_val` supports sequence instead of tuple only.
* Add unit tests for `AutoAugment` and `hparams` in `RandAugment`.
* Use smaller test image to speed up uni tests.
* Use hparams to simplify RandAugment config in swin-transformer.
* Rename augment config name from `pipeline` to `pipelines`.
* Add some commnet ad docstring.
* Refactor unit tests folder structure.
* Remove label smooth and Vit test in `test_classifiers.py`
* Rename test_utils in dataset to test_dataset_utils
* Split test_models/test_utils/test_utils.py to multiple sub files.
* Add unit tests of classifiers and heads
* Use patch context manager.
* Add unit test of `is_tracing`, and add warning in `is_tracing` if torch
verison is smaller than 1.6.0
* Add swin transformer archs S, B and L.
* Add SwinTransformer configs
* Add train config files of swin.
* Align init method with original code
* Use nn.Unfold to merge patch
* Change all ConfigDict to dict
* Add init_cfg for all subclasses of BaseModule.
* Use mmcv version init function
* Add Swin README
* Use safer cfg copy method
* Improve docstring and variable name.
* Fix some difference in randaug
Fix BGR bug, align scheduler config.
Fix label smoothing parameter difference.
* Fix missing droppath in attn
* Fix bug of relative posititon table if window width is not equal to
height.
* Make `PatchMerging` more general, support kernel, stride, padding and
dilation.
* Rename `residual` to `identity` in attention and FFN.
* Add `auto_pad` option to auto pad feature map
* Improve docstring.
* Fix bug in ShiftWMSA padding.
* Remove unused `key` and `value` in ShiftWMSA
* Move `PatchMerging` into utils and use common `PatchEmbed`.
* Use latest `LinearClsHead`, train augments and label smooth settings.
And remove original `SwinLinearClsHead`.
* Mark some configs as "Evalution Only".
* Remove useless comment in config
* 1. Move ShiftWindowMSA and WindowMSA to `utils/attention.py`
2. Add docstrings of each module.
3. Fix some variables' names.
4. Other small improvement.
* Add unit tests of swin-transformer and patchmerging.
* Fix some bugs in unit tests.
* Fix bug of rel_position_index if window is not square.
* Make WindowMSA implicit, and add unit tests.
* Add metafile.yml, update readme and model_zoo.
* add mytrain.py for test
* test before layers
* test attr in layers
* test classifier
* delete mytrain.py
* add patchembed and hybridembed
* add patchembed and hybridembed to __init__
* test patchembed and hybridembed
* fix some comments
* Refactor Mobilenetv3 structure and add ConvClsHead.
* Change model's name from 'MobileNetv3' to 'MobileNetV3'
* Modify configs for MobileNetV3 on CIFAR10.
And add MobileNetV3 configs for imagenet
* Fix activate setting bugs in MobileNetV3.
And remove bias in SELayer.
* Modify unittest
* Remove useless config and file.
* Fix mobilenetv3-large arch setting
* Add dropout option in ConvClsHead
* Fix MobilenetV3 structure according to torchvision version.
1. Remove with_expand_conv option in InvertedResidual, it should be decided by channels.
2. Revert activation function, should before SE layer.
* Format code.
* Rename MobilenetV3 arch "big" to "large".
* Add mobilenetv3_small torchvision training recipe
* Modify default `out_indices` of MobilenetV3, now it will change
according to `arch` if not specified.
* Add MobilenetV3 large config.
* Add mobilenetv3 README
* Modify InvertedResidual unit test.
* Refactor ConvClsHead to StackedLinearClsHead, and add unit tests.
* Add unit test for `simple_test` of `StackedLinearClsHead`.
* Fix typo
Co-authored-by: Yidi Shao <ydshao@smail.nju.edu.cn>
* add mytrain.py for test
* test before layers
* test attr in layers
* test classifier
* delete mytrain.py
* add rand_bbox_minmax rand_bbox and cutmix_bbox_and_lam to BaseCutMixLayer
* add mixup_prob to BatchMixupLayer
* add cutmixup
* add cutmixup to __init__
* test classifier with cutmixup
* delete some comments
* set mixup_prob default to 1.0
* add cutmixup to classifier
* use cutmixup
* use cutmixup
* fix bugs
* test cutmixup
* move mixup and cutmix to augment
* inherit from BaseAugment
* add BaseAugment
* inherit from BaseAugment
* rename identity.py
* add @
* build augment
* register module
* rename to augment.py
* delete cutmixup.py
* do not inherit from BaseAugment
* add augments
* use augments in classifier
* prob default to 1.0
* add comments
* use augments
* use augments
* assert sum of augmentation probabilities should equal to 1
* augmentation probabilities equal to 1
* calculate Identity prob
* replace xxx with self.xxx
* add comments
* sync with augments
* for BC-breaking
* delete useless comments in mixup.py
* Refector label smooth loss, now support mode `original`, `classy_vision`
and `multi_label`.
* Add unittests for label smooth loss.
* Improve docstring of LSR
* add increasing in solarize and posterize
* fix linting
* Revert "add increasing in solarize and posterize"
This reverts commit 128af36e9b.
* revise according to comments
* Add paramater magnitude_std in RandAugment to allow randomly movement of magnitude_value
* Add unittest for magnitude_std
* Improve docstring of magnitude_std
* GlabelAveragePooling support 1d, 2d and 3d by param, and add neck test
* Imporve neck test
* Change 'mode' attribute in GAP to 'dim', and add docstring
* add mytrain.py for test
* test before layers
* test attr in layers
* test classifier
* delete mytrain.py
* set cal_acc in ClsHead defaults to False
* set cal_acc defaults to False
* use *args, **kwargs instead
* change bs16 to 3 in test_image_classifier_vit
* fix some comments
* change cal_acc=True
* test LinearClsHead
* add convert_to_one_hot
* add test_label_smooth_loss
* add my label_smooth_loss
* fix CELoss bug
* test new label smooth loss
* LabelSmoothLoss downward compatibility
* add some comments
* remove the old version of LabelSmoothLoss
* add some comments
* add some comments
* add some comments
* add label smooth to config
* support random augmentation
* minor fix on posterize
* minor fix on posterize
* minor fix on cutout
* minor fix on cutout
* fix bug in solarize add
* revised according to comments
* Add mixup option
* Modify the structure of mixup and add configs
* Clean configs
* Add test for mixup and SoftCrossEntropyLoss
* Add simple test for ImageClassifier
* Fix bug in test_losses.py
* Add assertion in CrossEntropyLoss