[Feature] Add optimizer wrapper (#265)
* Support multiple optimizers
* minor refinement
* improve unit tests
* minor fix
* Update unit tests for resuming or saving ckpt for multiple optimizers
* refine docstring
* refine docstring
* fix typo
* update docstring
* refactor the logic to build multiple optimizers
* resolve comments
* ParamSchedulers spports multiple optimizers
* add optimizer_wrapper
* fix comment and docstirng
* fix unit test
* add unit test
* refine docstring
* RuntimeInfoHook supports printing multi learning rates
* resolve comments
* add optimizer_wrapper
* fix mypy
* fix lint
* fix OptimizerWrapperDict docstring and add unit test
* rename OptimizerWrapper to OptimWrapper, OptimWrapperDict inherit OptimWrapper, and fix as comment
* Fix AmpOptimizerWrapper
* rename build_optmizer_wrapper to build_optim_wrapper
* refine optimizer wrapper
* fix AmpOptimWrapper.step, docstring
* resolve confict
* rename DefaultOptimConstructor
* fix as comment
* rename clig grad auguments
* refactor optim_wrapper config
* fix docstring of DefaultOptimWrapperConstructor
fix docstring of DefaultOptimWrapperConstructor
* add get_lr method to OptimWrapper and OptimWrapperDict
* skip some amp unit test
* fix unit test
* fix get_lr, get_momentum docstring
* refactor get_lr, get_momentum, fix as comment
* fix error message
Co-authored-by:
zhouzaida <zhouzaida@163.com>
Showing
- mmengine/hooks/optimizer_hook.py 2 additions, 2 deletionsmmengine/hooks/optimizer_hook.py
- mmengine/hooks/runtime_info_hook.py 10 additions, 7 deletionsmmengine/hooks/runtime_info_hook.py
- mmengine/optim/__init__.py 6 additions, 5 deletionsmmengine/optim/__init__.py
- mmengine/optim/optimizer/__init__.py 9 additions, 4 deletionsmmengine/optim/optimizer/__init__.py
- mmengine/optim/optimizer/amp_optimizer_wrapper.py 110 additions, 0 deletionsmmengine/optim/optimizer/amp_optimizer_wrapper.py
- mmengine/optim/optimizer/builder.py 21 additions, 19 deletionsmmengine/optim/optimizer/builder.py
- mmengine/optim/optimizer/default_constructor.py 56 additions, 34 deletionsmmengine/optim/optimizer/default_constructor.py
- mmengine/optim/optimizer/optimizer_wrapper.py 349 additions, 0 deletionsmmengine/optim/optimizer/optimizer_wrapper.py
- mmengine/optim/optimizer/optimizer_wrapper_dict.py 208 additions, 0 deletionsmmengine/optim/optimizer/optimizer_wrapper_dict.py
- mmengine/optim/scheduler/lr_scheduler.py 7 additions, 7 deletionsmmengine/optim/scheduler/lr_scheduler.py
- mmengine/optim/scheduler/momentum_scheduler.py 14 additions, 7 deletionsmmengine/optim/scheduler/momentum_scheduler.py
- mmengine/optim/scheduler/param_scheduler.py 28 additions, 20 deletionsmmengine/optim/scheduler/param_scheduler.py
- mmengine/registry/__init__.py 8 additions, 8 deletionsmmengine/registry/__init__.py
- mmengine/registry/root.py 4 additions, 1 deletionmmengine/registry/root.py
- mmengine/runner/runner.py 112 additions, 88 deletionsmmengine/runner/runner.py
- mmengine/utils/__init__.py 2 additions, 2 deletionsmmengine/utils/__init__.py
- mmengine/utils/misc.py 17 additions, 0 deletionsmmengine/utils/misc.py
- tests/test_hook/test_ema_hook.py 3 additions, 1 deletiontests/test_hook/test_ema_hook.py
- tests/test_hook/test_optimizer_hook.py 4 additions, 4 deletionstests/test_hook/test_optimizer_hook.py
- tests/test_hook/test_runtime_info_hook.py 19 additions, 2 deletionstests/test_hook/test_runtime_info_hook.py
Loading
Please register or sign in to comment