* fix build multiple scheduler
* add new unit test
* fix comment and error message
* fix comment and error message
* extract _parse_scheduler_cfg
* always call build_param_scheduler during train and resume. If there is only one optimizer, the defaut value for sheduler will be a list, otherwise there is multiple optimizer, the default value of sheduler will be a dict
* minor refine
* rename runner test exp name
* fix as comment
* minor refine
* fix ut
* only check parameter scheduler
* minor refine
* fix save scheduler state dict with optim wrapper
* remove for loop and inherit TestParameterScheduler
* remove for loop and inherit TestParameterScheduler
* minor refine
* [Enhance] Auto set the `end` of param schedulers.
* Add log output and unit test
* Update docstring
* Update unit tests of `CosineAnnealingParamScheduler`.
* first commit
* Support modify base config and add unit test
* remove import mmengine in config
* add unit test
* fix lint
* add unit test
* move RemoveAssignFromAST to config utils
* git add utils
* fix format issue in test file
* refine unit test
* refine unit test
* clean code
* fix as comment
* fix as comment
* add get_registry_by_scope method
* add unit test and docstring example
* rename get_registry_by_scope to switch_scope_and_registry
* move build function to registry/builder
* fix docstring
* rename builder->registry_builder, move build_from_cfg to registry_builder
rename builder->registry_builder, move build_from_cfg to registry_builder
* rename registry_builder to build_function
rename registry_builder to build_function
* fix docstring and type hint
* rename build_function to build_functions
* Fix ema hook and add unit test
* save state_dict of ema.module
save state_dict of ema.module
* replace warning.warn with MMLogger.warn
* fix as comment
* fix bug
* fix bug
* add autocast wrapper
* fix docstring
* fix docstring
* fix compare version
* fix unit test
* fix incompatible arguments
* fix as comment
* fix unit test
* rename auto_cast to autocast
* [Refactor]:Refactor `after_val_epoch` to make it output metric by epoch
* add an option for user to choose the way of outputing metric
* rename variable
* reformat docstring
* add type alias
* reformat code
* add test function
* add comment and test code
* add comment and test code
* [Feat] Support FSDP Training
* fix version comparison
* change param format and move `FSDP_WRAP_POLICY` to wrapper file
* add docstring and type hint,reformat code
* fix type hint
* fix typo, reformat code
* merge context
* update unit test
* add docstring
* fix bug in AmpOptimWrapper
* add docstring for backward
* add warning and docstring for accumuate gradient
* fix docstring
* fix docstring
* add params_group method
* fix as comment
* fix as comment
* make default_value of loss_scale to dynamic
* Fix docstring
* decouple should update and should no sync
* rename attribute in OptimWrapper
* fix docstring
* fix comment
* fix comment
* fix as comment
* fix as comment and add unit test
* fix build train_loop during test
* fix build train_loop during test
* fix build train_loop during test
* fix build train_loop during test
* Fix as comment
* fix BaseDataPreprocessor
* fix BaseDataPreprocessor
* change device type to torch.device
* change device type to torch.device
* fix cpu method of base model
* Allow ImgDataPreprocessor do not normalize
* remove unnecessary type ignore
* make mean and std optional
* refine docstring
* fix BaseDataPreprocessor
* fix BaseDataPreprocessor
* change device type to torch.device
* change device type to torch.device
* fix cpu method of base model
* add base model, ddp model and unit test
* add unit test
* fix unit test
* fix docstring
* fix cpu unit test
* refine base data preprocessor
* refine base data preprocessor
* refine interface of ddp module
* remove optimizer hook
* add forward
* fix as comment
* fix unit test
* fix as comment
* fix build optimizer wrapper
* rebase main and fix unit test
* stack_batch support stacking ndim tensor, add docstring for merge dict
* fix lint
* fix test loop
* make precision_context effective to data_preprocessor
* fix as comment
* fix as comment
* refine docstring
* change collate_data output typehints
* rename to_rgb to bgr_to_rgb and rgb_to_bgr
* support build basemodel with built DataPreprocessor
* fix as comment
* fix docstring
* fix build optimizer wrapper without type
* refine logic
* fix as comment
* fix optim_wrapper config error in docstring and unit test
* refine docstring of build_optim_wrapper
* add the epoch/iter that begins validating
* fix lint
* add property and fix unit test
* minor changes
* fix typos and add unit test
* add unit test about begin
* fix docstring
* [Feature] Support EMA and SWA.
* add ema hook
* add avg model ut
* add more unit tests
* resolve comments
* fix warmup ema
* rename
* fix comments
* add assert
* fix typehint
* add comments
* [Feature] Support convert epoch-based schedulers to iter-based.
* Support convert and refactor LR and Momentum to mixin.
* Add unit tests
* fix args and add runner ut
* resolve comments
* [Enhancement] Handle the device type of inputs in functions
* rename and move three fucntions to dist/utils.py
* minor refinement
* rename dist to torch_dist in utils.py
* update unit tests
* refine unit tests
* add unit tests
* fix unit tests
* replace Sequence with list and tuple
* rename get_backend_device to get_comm_device
* fix unit tests
* fix unit tests
* refactor and add more unit tests
* cast_data_device does not support set type
* [Fix] param_scheduler can not None when training models
* update unit tests
* fix unit tests
* refactor ParamSchedulerHook
* refactor unit tests
* param_schedulers can be an empty list
* rename global accessible and intergration get_sintance and create_instance
* move ManagerMixin to utils
* fix as docstring and seporate get_instance to get_instance and get_current_instance
* fix lint
* fix docstring, rename and move test_global_meta
* rename LogBuffer to HistoryBuffer, rename MessageHub methods, MessageHub support resume
* refine MMLogger timestamp, update unit test
* MMLogger add logger_name arguments
* Fix docstring
* change default logger_name to mmengine
* Fix docstring comment and unitt test
* fix docstring
fix docstring
* fix docstring
* Fix lint
* Fix hook unit test
* Fix comments
* should not accept other arguments if corresponding instance has been created
* fix logging ddp file saving
* fix logging ddp file saving
* fix docstring
* fix unit test
* fix docstring as comment
* automatic update iter and epoch in message_hub
* add docstring
* Update comment and docstring
* Fix as comment
* Fix docstring and comment
* refine comments
* [Enhancement] Provide MultiProcessTestCase to test distributed related modules
* remove debugging info
* add timeout property
* [Enhancement] Refactor the unit tests of dist module with MultiProcessTestCase
* minor refinement
* minor fix
* add get_subset method, add comment, rename variable
* add unit test
* Please mypy
* Fix as comment, support negative index, and fix index access error
* add and refine docstring, handle indices=0
* handle indices=0
* add empty list indices test
* rename in_meta in docstring and comments to in_metainfo
* clean meta nameing
* Fix negative indices error
* test empty list of get_subset
* fix comments and docstring
* add unit test
* Fix as comment
* Fix as comment
* add docstring to mention wrapped dataset should not inherit from Basedataset
* Fix wrapped dataset docstring
* Fix wrapped dataset docstring
* Fix method name, docstring, and comments
* Fix comments
* Fix comments
* Fix comments
* [Enhancement] Rename build_from_cfg to from_cfg
* refactor build_logger and build_message_hub
* remove time.sleep from unit tests
* minor fix
* move set_randomness from setup_env
* improve docstring
* refine comments
* print a warning information
* refine comments
* simplify the interface of build_logger
* add defaut scope
* Fix docstring
* override get_current_instance method in DefaultScope
clean meta nameing
* remove default mmengine argument of DefaltScope
remove default mmengine argument of DefaltScope
remove default mmengine argument of DefaltScope
* Fix unit test
Fix unit test
* Fix example in docstring
* add explaination of DefaultScope
* [Fix]: Change after inter and epoch to after train iter and epoch
* [Fix]: Add new UT to param scheduler hook
* [Fix]: Change the type of runner in docstring to Runner
Co-authored-by: Your <you@example.com>
* first commit
* update logging
* update MessageHub unit test and LogBuffer unitest
* update logging docs
* update logging impl and test
* update test logging
* update test
* update logging test and impl
* Fix logging test
* Update log_buffer.py
* rename statistics argumentes
* fix as comment
* Fix as comment
* Fix as comment
* Fix as comment
* Fix meta class
* Fix as comment
* Fix as comment
* Fix as comment
* Fix name declare
* Fix as comment
* Fix as comment
* Fix as comment
* Fix docstring
* Fix as comment
* Fix as comment
* [Feature] Add distributed module
* fix IS_DIST error
* all_reduce_dict does operations in-place
* support 'mean' operation
* provide local group process
* add tmpdir argument for collect_results
* add unit tests
* refactor unit tests
* simplify steps to create multiple processes
* minor fix
* describe the different of *gather* in mmengine and pytorch
* minor fix
* add unit tests for nccl
* test nccl backend in multiple gpu
* add get_default_group function to handle different torch versions
* minor fix
* [Feature] Add distributed module
* fix IS_DIST error
* all_reduce_dict does operations in-place
* support 'mean' operation
* provide local group process
* add tmpdir argument for collect_results
* add unit tests
* refactor unit tests
* simplify steps to create multiple processes
* minor fix
* describe the different of *gather* in mmengine and pytorch
* minor fix
* add unit tests for nccl
* test nccl backend in multiple gpu
* add get_default_group function to handle different torch versions
* minor fix
* minor fix
* handle torch1.5
* handle torch1.5
* minor fix
* fix typo
* refactor unit tests
* nccl does not support gather and gather_object
* fix gather
* fix collect_results_cpu
* fix collect_results and refactor unit tests
* fix collect_results unit tests
* handle torch.cat in torch1.5
* refine docstring
* refine docstring
* fix comments
* fix comments
* [Feature]: Add Part3 of Hooks
* [Feature]: Add Hook
* [Fix]: Add docstring and type hint for base hook
* add sync buffer hook
* update typing hint and docs
* fix lint
* fix mypy
* fix lint
* use mock from unittest
Co-authored-by: seuyou <3463423099@qq.com>
* [Feature]: Add checkpoint hook
* [Fix]: Fix lint
* [Fix]: Delete redundant optional and give an example to our_dir
* [Feature]: Add test the last_ckpt in UT
* [Fix]: Fix docstring problem
* [Fix]: Add patch to UT
* [Feature]: Add Test case for by epoch
* [Feature]: Add Part3 of Hooks
* [Feature]: Add Hook
* add iter timer hook
* update test
* [Fix]: Add docstring and type hint for base hook
* fix mypy
* improve doc coverage and merge main
Co-authored-by: seuyou <3463423099@qq.com>
* [Feature]: Add Part3 of Hooks
* [Feature]: Add Hook
* [Fix]: Add docstring and type hint for base hook
* [Fix]: Add test case to not the last iter, inner_iter, epoch
* [Fix]: Add missing type hint
* [Feature]: Add Args and Returns in docstring
* [Fix]: Add missing colon
* [Fix]: Add optional to docstring
* [Fix]: Fix docstring problem
* [Fix]:typo
* [Fix]: Fix lint
Co-authored-by: Your <you@example.com>
* basedataset first commit
* add base dataset
* add dataset
* add basedataset
* Fix test dataset
* Fix mypy and test
* Fix mypy and test
* remove unused code
* Update mmengine/dataset/base_dataset.py
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
* Update mmengine/dataset/base_dataset.py
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
* add more corner cases in unittest
* fix lint
* Fix as comment
* Fix lint
* update unitest
* Type hint Dick to dict
* rename max_refetch
* Fix as comment
* Fix typo
* Fix as comment
* BaseDataset is no more an abstrac Class, change UT and docs
* Fix as comment
* Fix as comment and refactor type error
* Add comment for full init
* Fix as comment and modify dataset_wrapper
* Fix as comment and modify dataset_wrapper
* Fix as comment
* Fix as comment
* Fix as comment
* Fix as comment
* Fix as comment
* Fix as comment
* Fix as comment
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
Co-authored-by: Tao Gong <gongtao950513@gmail.com>
* add config test
* Fix typo
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
* Update tests/config/test_config.py
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
* Reconstruct config test
* Fix import logic and error test
* Fix path error
* Restructuring Config
* simplify test logic
simplify test logic
* rename test_config file
* add test complex dump and pretty text
* adjust test sequence according to comment
adjust test sequence according to comment
* add comment and test for simple.config.py
* add config test data
* add init
* remove __pycache__
* fix as comment
* add syntax test case
* remove tmp path and modify comment
* add test for setattr
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
* add unit tests of data abstract interface
* update
* update
* update docs of data element
* a draft of UT of datasample, to be finished
* update datasample test
* updata
* update
* fix comments
* fix comments
* fix comments
Co-authored-by: liukuikun <liukuikun@sensetime.com>
* tmp
* add scheduler unit test
* disable yapf
* add more test
* add more test
* not use torch test case
* solve comments
* update file
* add more unit tests
* resolve comments
* update cosine ut
* fix typo
* solve comments
* solve comments
* resolve comments
* Add the unittest of registry
* improve the format
* fix the test_repr
* refactor the test_init
* add the copyright for tests directory
* add more unit tests
* fix error
* add unit tests for _search_child and _get_root_registry
* build_from_cfg supports dict, ConfictDict and Config
* improve docstring