10 Commits

Author SHA1 Message Date
Yang Gao
a27952dbb1
[Improvement] Update NasMutator to build search_space in NAS (#426)
* update space_mixin

* update NAS algorithms with SpaceMixin

* update pruning algorithms with SpaceMixin

* fix ut

* fix comments

* revert _load_fix_subnet_by_mutator

* fix dcff test

* add ut for registry

* update autoslim_greedy_search

* fix repeat-mutables bug

* fix slice_weight in export_fix_subnet

* Update NasMutator:
1. unify mutators for NAS algorithms as the NasMutator;
2. regard ChannelMutator as pruning-specified;
3. remove value_mutators & module_mutators;
4. set GroupMixin only for NAS;
5. revert all changes in ChannelMutator.

* update NAS algorithms using NasMutator

* update channel mutator

* update one_shot_channel_mutator

* fix comments

* update UT for NasMutator

* fix isort version

* fix comments

---------

Co-authored-by: gaoyang07 <1546308416@qq.com>
Co-authored-by: liukai <your_email@abc.example>
2023-02-01 22:51:38 +08:00
Yue Sun
fb42405af8
[Feature] Add Autoformer algorithm (#315)
* update candidates

* update subnet_sampler_loop

* update candidate

* add readme

* rename variable

* rename variable

* clean

* update

* add doc string

* Revert "[Improvement] Support for candidate multiple dimensional search constraints."

* [Improvement] Update Candidate with multi-dim search constraints. (#322)

* update doc

* add support type

* clean code

* update candidates

* clean

* xx

* set_resource -> set_score

* fix ci bug

* py36 lint

* fix bug

* fix check constrain

* py36 ci

* redesign candidate

* fix pre-commit

* update cfg

* add build_resource_estimator

* fix ci bug

* remove runner.epoch in testcase

* [Feature] Autoformer architecture and dynamicOPs (#327)

* add DynamicSequential

* dynamiclayernorm

* add dynamic_pathchembed

* add DynamicMultiheadAttention and DynamicRelativePosition2D

* add channel-level dynamicOP

* add autoformer algo

* clean notes

* adapt channel_mutator

* vit fly

* fix import

* mutable init

* remove annotation

* add DynamicInputResizer

* add unittest for mutables

* add OneShotMutableChannelUnit_VIT

* clean code

* reset unit for vit

* remove attr

* add autoformer backbone UT

* add valuemutator UT

* clean code

* add autoformer algo UT

* update classifier UT

* fix test error

* ignore

* make lint

* update

* fix lint

* mutable_attrs

* fix test

* fix error

* remove DynamicInputResizer

* fix test ci

* remove InputResizer

* rename variables

* modify type

* Continued improvements of ChannelUnit

* fix lint

* fix lint

* remove OneShotMutableChannelUnit

* adjust derived type

* combination mixins

* clean code

* fix sample subnet

* search loop fly

* more annotations

* avoid counter warning and modify batch_augment cfg by gy

* restore

* source_value_mutables restriction

* simply arch_setting api

* update

* clean

* fix ut
2022-11-14 13:01:04 +08:00
Yang Gao
4e80037393
[Improvement] Update estimator with api revision (#277)
* update estimator usage and fix bugs

* refactor api of estimator & add inner check methods

* fix docstrings

* update search loop and config

* fix lint

* update unittest

* decouple mmdet dependency and fix lint

Co-authored-by: humu789 <humu@pjlab.org.cn>
2022-09-14 20:39:49 +08:00
humu789
57bf6fa30e
Update search configs (#269)
* update score_key

* search_debug

* add search config & fix _check_constraints

* fix ut
2022-09-01 00:13:01 +08:00
pppppM
179bd5287d
[Fix] Adapt latest mmcv (#253)
* Adapt to the latest mmcv and mmengine

* fixed ut_subnet_sampler_loop

* fix get_model

* fix lints

Co-authored-by: humu789 <humu@pjlab.org.cn>
2022-08-29 20:34:51 +08:00
Yang Gao
4b3f8ab69e
[Feature] Refactor Estimator for computing FLOPs/Params/Latency. (#230)
* Refactor ModelEstimator:
1. add EvaluatorLoop in engine.runners;
2. add estimator for structures (both subnet & supernet);
3. add layer_counter for each op.

* fix lint

* update estimator:
1. add ResourceEstimator based on BaseEstimator;
2. add notes & examples for ResourceEstimator & EvaluatorLoop usage;
3. fix a bug of latency test.
4. minor changes according to comments.

* add UT & fix a bug caused by UT

* add docstrings & remove old estimator

* update docstrings for op_spec_counters

* rename resource_evaluator_val_loop

* support adding resource attrs of each submodule in a measured model

* fix lint

* refactor estimator file structures

* support estimating resources for spec modules

* rm old UT

* update new estimator UT cases

* fix traversal range of the model

* cancel unit convert in accumulate_sub_module_flops_params

* use estimator_cfg to build ResourceEstimator

* fix a broadcast bug

* delete fixed input_shape

* add assertion and string-format-return when measuring spec_modules

* add UT for estimating spec_modules
2022-08-23 15:01:47 +08:00
pppppM
2c640d0586
Reorganize Dirs (#205)
* reorg dirs

* rename deliver to delivery
2022-07-25 13:28:08 +08:00
pppppM
ae205ac0c6
Refactor darts (#204)
* add separate optim wrapper

* refactor darts related modules

* refactor darts algorithm

* fix some bugs

* update darts related modules

* update unittest

* update darts configs
2022-07-25 09:52:39 +08:00
qiufeng
5ddfed5040 [Feature] Add slimmable algorithm 2022-07-15 23:05:07 +08:00
humu789
2d5e8bc675 Refactor subnet sampler 2022-07-15 23:04:38 +08:00