4 Commits

Author SHA1 Message Date
Yang Gao
18fc50f7bc
[Feature] Add performance predictor (#306)
* add predictor with 4 handlers

* [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

* update metric_predictor:
1. update MetricPredictor;
2. add predictor config for searching;
3. add predictor in evolution_search_loop.

* add UT for predictor

* add MLPHandler

* patch optional.txt for predictors

* patch test_evolution_search_loop

* refactor apis of predictor and handlers

* fix ut and remove predictor_cfg in predictor

* adapt new mutable & mutator design

* fix ut

* remove unness assert after rebase

* move predictor-build in __init__ & simplify estimator-build

Co-authored-by: Yue Sun <aptsunny@tongji.edu.cn>
2022-11-14 17:09:32 +08:00
Yang Gao
a6a337b6bc
[Fix] Fix counter mapping bug (#331)
* fix counter mapping bug

* move judgment into get_counter_type & update UT
2022-10-24 11:02:10 +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
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