Commit Graph

192 Commits (42e8de73af42d95233ddc5bbf6d709d0bed141d1)
 

Author SHA1 Message Date
PJDong 24e106ba1d
[Doc] Optimize docs and Fix lint (#261)
* fix name of mmcv-full to mmcv

* [doc] move the location of nas/kd/pruning; fix lint errors

* optimize docs and fix pre-commit error

* [Doc&Fix] add note for installation; fix the requirements

* update docs

Co-authored-by: humu789 <humu@pjlab.org.cn>
2022-08-31 18:33:47 +08:00
pppppM 5105489d64
Revert "[Enhancement] Add benchmark test script" (#263)
Revert "[Enhancement] Add benchmark test script (#262)"

This reverts commit f60cf9c469.
2022-08-30 22:03:54 +08:00
pppppM f60cf9c469
[Enhancement] Add benchmark test script (#262)
* update benchmark test

* fix circle ci gpu config

* fix lints

Co-authored-by: gaojianfei <gaojianfei@sensetime.com>
2022-08-30 21:59:39 +08:00
pppppM 8a249fd98d
[CI] Add circle ci (#257)
* copy .circleci from mmdet

* adapt mmrazor

* change the min docstring coverage

* fix typos

* update publish model script

* update circle ci config
2022-08-30 20:20:10 +08:00
PJDong c650b3eee5
[Doc] Add Tutorial of KD,Pruning,NAS and Installation. (#255)
* [doc] add doc of installation, kd, nas, pruning

* [doc] add user guide part

* fix name of mmcv-full to mmcv

* [doc] fix mmcv based on zaida 's suggestion

* [doc] fix index error based on shiguang's comments
2022-08-30 19:48:18 +08:00
humu789 ce22497b25
[Docs] Add docs and update algo README (#259)
* docs v0.1

* update picture links in algo README
2022-08-30 19:46:37 +08:00
P.Huang f45e2bdca3
[Improvement] Decouple dependency (#254)
* add dependency placeholder

* update requirements

* decouple mmcls dependencies

Co-authored-by: huangpengsheng <huangpengsheng@sensetime.com>
2022-08-30 09:57:23 +08:00
pppppM e3390ce8ae
[Bugs] Fix some bugs found during testing and add dev scripts (#256)
* update training benchmark

* fix detnas config

* fix pspnet config

* fix cwd configs

* fix cwd metafile

Co-authored-by: gaojianfei <gaojianfei@sensetime.com>
2022-08-29 22:45:46 +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
humu789 b2272eb313
[Docs] Refactor readthedocs (#252)
refactor readthedocs
2022-08-29 18:41:51 +08:00
P.Huang 5d9fcd8070
[feature] add `A Comprehensive Overhaul of Feature Distillation` (#244)
* init

* init

* linting

* add README

* add wrn docstrings

* add vanilla wrn configs

* fix UT

* OFD DONE

* update OFD readme

* update config path

* rename vanilla model files

* rename vanilla models config files

Co-authored-by: huangpengsheng <huangpengsheng@sensetime.com>
2022-08-29 14:06:58 +08:00
zhongyu zhang 1c0da58dae
[Feature] Add FBKD algorithm and torch_connectors (#248)
* 1.Add FBKD

* 1.Add torch_connector and its ut. 2.Revise readme and fbkd config.

* 1.Revise UT for torch_connectors

* 1.Revise nonlocalblock into a subclass of NonLocal2d in mmcv.cnn
2022-08-29 10:05:32 +08:00
zhongyu zhang f3b964c521
[Feature] Add DFAD algorithm (#247)
1.Add DFAD algorithm. 2.Add L1Loss and its UT.
2022-08-25 15:46:45 +08:00
LKJacky c749bd751a
[fix]fix config error of autoslim (#246)
fix config error of autoslim

Co-authored-by: liukai <liukai@pjlab.org.cn>
2022-08-24 18:58:30 +08:00
zhongyu zhang 876b2ac033
[Feature] Add Zero-shot Knowledge Transfer via Adversarial Belief Matching (#241)
* 1.Add ZSKT algorithm with zskt_generator, at_loss. 2.Add teacher_detach in kl_divergence.

* 1.Amend readme. 2.Revise UT bugs of test_graph and test_distill.

* 1.Amend docstring of zskt_generator

* 1.Add torch version judgment in test_distillation_loss.

* 1.Revise defaults of batch_size to 1 in generators. 2.Revise mmcls.data to mmcls.structures

* 1.Rename function "at" to "calc_attention_matrix".
2022-08-24 14:57:35 +08:00
wang shiguang ba71abf357
[fix] fix mmcv mmengine (#242)
* align_with_mmcv_and_mmengine

* fix_mmcv.fileio
2022-08-24 09:58:11 +08:00
P.Huang afb95a40e7
[feature] add Factor Transfer (#237)
* init

* init

* update

* done

* update README

* update README

* update README

* update README

* update README

* fix docstring && fix typing

* update

Co-authored-by: huangpengsheng <huangpengsheng@sensetime.com>
2022-08-23 19:52:35 +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
zhongyu zhang 57aec1f730
[Feature] Add DAFL Distillation (#235)
* 1.Add DAFL, including config, DAFLLoss and readme. 2.Add DataFreeDistillationtillation. 3.Add Generator, including base_generator and dafl_generator. 4.Add get_module_device and set_requires_grad functions in utils.

* 1.Amend the file that report error in mypy test under py37, including gather_tensors, datafree_distillation, base_generator. 2.Revise other linting error.

* 1.Revise some docstrings.

* 1.Add UT for datafreedistillation. 2.Add all typing.hints.

* 1.Add UT for generators and gather_tensors.

* 1.Add assert of batch_size in base_generator

* 1.Isort

Co-authored-by: zhangzhongyu.vendor < zhangzhongyu.vendor@sensetime.com>
2022-08-23 10:47:34 +08:00
zengyi 72c11751cb
fix readme.md table 2022-08-22 14:26:32 +08:00
zengyi c6e8dcd209
[Feature] Add BYOT Distillation (#232)
* byot connector & distiller

* fix config

* fix connector

* tmpsave

* add byot & kdsoftce loss

* update dev-1.x

* fx wsld

* Update README.md

* Update README.md

* fix md

* add ut & REQUIRE REVIEW part

* fix md

* add SelfDistillValLoop UT

* fix comments

* fix comments v2

* fix comments v3

* add connector_idx=None to ConfigurableDistiller.get_record()

Co-authored-by: zengyi.vendor <zengyi.vendor@sensetime.com>
2022-08-22 14:08:02 +08:00
LKJacky 83240dcd8a
add BaseNode/BaseGraph, ModuleNode/ModuleGraph (#217)
* add BaseNode/BaseGraph,  ModuleNode/ModuleGraph

* add docstring, redesign some functions

* add 'placeholder' after cat/bind/pass

* change type to a property from a method

* add test model s

* rename XXXNode in path to PathXXXNode

* 'xxconv' -> 'xxconv2d' in type

* ToGraph -> GraphConverter, PathToGraph -> PathToGraphConverter

* rm init_from_path_list

* convert some public methods to private methods in GraphConverter

* type -> basic_type

* fix some error

Co-authored-by: liukai <liukai@pjlab.org.cn>
2022-08-19 15:38:19 +08:00
qiufeng d190037a5e
[Feature] Add dynamic bricks (#228)
* add dynamic bricks

* add dynamic conv2d test

* add tests for dynamic linear and dynamic norm

* add docstring for dynamic conv2d

* add docstring for dynamic linear

* add docstring for dynamic batchnorm

* Refactor the dynamic op ( put more logic into the mixin )

* fix UT

* Fix UT ( fileio was moved to mmengine)

* derived mutable adds choices property

* Unify the register interface of mutable in dynamic op

* Unified getter interface of mutable in dynamic op

Co-authored-by: gaojianfei <gaojianfei@sensetime.com>
Co-authored-by: pppppM <gjf_mail@126.com>
2022-08-19 15:15:38 +08:00
whcao 8775b033b0
[Bug]Fix iterable import bug (#233)
fix iterable import bug
2022-08-18 13:41:07 +08:00
zhongyu zhang a5435d74b9
[Fix] Fix AssertionError in test_connector (#231)
fix connector UT bug
2022-08-15 14:59:58 +08:00
spynccat a1937fd5a6
[Feature] Add Decoupled KD Loss (#222)
* add DKDLoss, config

* linting

* linting

* reset default reduction

* dkd ut

* Update decoupled_kd.py

* Update decoupled_kd.py

* Update decoupled_kd.py

* fix commit

* fix readme

* fix comments

* linting comment

* rename loss params

* fix docstring

* Update decoupled_kd.py

* fix gt from config

* merge fix

* fix ut & wsld

* Update README.md

* Update README.md

* add Acknowledgement

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* fix readme style

* fix md

Co-authored-by: zengyi.vendor <zengyi.vendor@sensetime.com>
2022-08-15 14:59:24 +08:00
qiufeng 6e8ebfd85a
[Fix] Fix `Protocol` import error when python<3.8 (#227)
fix Protocol import error
2022-08-12 13:06:12 +08:00
qiufeng 7dca9ba7c7
[Feature] Add `DerivedMutable` & `MutableValue` (#215)
* fix lint

* complement unittest for derived mutable

* add docstring for derived mutable

* add unittest for mutable value

* fix logger error

* fix according to comments

* not dump derived mutable when export

* add warning in `export_fix_subnet`

* fix __mul__ in mutable value
2022-08-10 16:07:03 +08:00
PJDong 696191e0c0
[Refactor] Move `build_arch_param` from `DiffMutableModule` to `DiffModuleMutator` (#221)
* move build_arch_param from mutable to mutator

* fix UT of diff mutable and mutator

* modify based on shiguang's comments

* remove mutator from the unittest of mutable
2022-08-10 10:05:32 +08:00
humu789 e4305f3d0b
[Bug] Fix darts loop unittest (#218)
* fix_darts_loop

* fix darts_loop unittest
2022-08-05 17:46:05 +08:00
zhongyu zhang e88e92cac4
[Feature] Add Activation Boundaries Loss (#214)
* 1.Add ABLoss and its config, readme and pipeline image. 2.Merge all connectors in general_connector into convconnector.

* 1.Improve convconnector to convmoduleconnecotr which aligns with mmcv. 2.Revise UT of test_connector. 3.Revise config of fitnet and abloss. 4.Revise mmcls import of darts_subnet_head to align with the newest mmcls-dev-1.x.

* 1.Simplify ConvModuleConncetor by ConvModule.

Co-authored-by: zhangzhongyu.vendor < zhangzhongyu.vendor@sensetime.com>
2022-08-05 14:14:47 +08:00
humu789 068e4bfdaa
[Fix] Fix EpochMultiDataloader in darts loop (#209)
fix_darts_loop
2022-08-01 14:51:40 +08:00
wilxy a94aaba986
[Feature] Add connector components and FitNet (#212)
* Fix spelling mistakes

* 1.Rename general connectors. 2.Replace nn.conv2 to build_conv_layer, replace nn.bn to build_norm_layer.

* 1. Rename function init_parameters to init_weights in SingleConvConnector to realize automatically invocation.

* 1. Add norm_cfg in config and general_connector

* 1.Move calculate_student_loss to distillation algorithm. 2.Move mmrazor.models.connector to mmrazor.models.architectures. 3.Merge stu_connectors and tea_connectors into connectors, and call connectors by their connector_name.

* 1.Replace connector_name to connector in record_info. 2.Add assert that each connector must be in connectors.

Co-authored-by: zhangzhongyu.vendor < zhangzhongyu.vendor@sensetime.com>
2022-07-28 19:17:42 +08:00
qiufeng 6987511e6b
[Fix] Fix mmcls import error (#206)
* fix mmcls import error

* fix __init__.py
2022-07-26 15:33:11 +08:00
PJDong 5495accd84
[Fix] Fix bugs in spos,anglenas,detnas (#202)
* fix bugs in spos,anglenas,detnas

* update metafile and subnet
2022-07-25 14:46:11 +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
pppppM cebc1aa810 Clean depercated tools 2022-07-15 23:05:10 +08:00
wutongshenqiu c6a2d482fd refactor autoslim config 2022-07-15 23:05:10 +08:00
pppppM 5bf1eca4e4 Add benchmark tools & Reorgnazie configs 2022-07-15 23:05:10 +08:00
qiufeng 5ddfed5040 [Feature] Add slimmable algorithm 2022-07-15 23:05:07 +08:00
pppppM a4c76ae47e [Refactor] Add distiller 2022-07-15 23:04:38 +08:00
PJDong 6c920c88ee Align SPOS and DetNAS to MMRazor2.0 2022-07-15 23:04:38 +08:00
humu789 2d5e8bc675 Refactor subnet sampler 2022-07-15 23:04:38 +08:00
humu789 1e3f8e9f67 Refactor EvolutionSearcher 2022-07-15 23:04:38 +08:00
humu789 7ab21f76e2 Refactor multiloader runner 2022-07-15 23:04:38 +08:00
pppppM cb238e36e3 [Feature] Add Recorder to improve Distiller 2022-07-15 23:04:38 +08:00
humu789 8913d6840d [Feature] Add KD val loop 2022-07-15 23:04:38 +08:00
whcao 6bdd9d682b [Refactor] Rename ChannelMutable to MutableChannel 2022-07-15 23:04:38 +08:00
PJDong 0939aecdb6 refactor name of mutable module 2022-07-15 23:04:38 +08:00