Releases: open-mmlab/mmengine
MMEngine Release V0.7.0
v0.7.0 (03/16/2023)
Highlights
- Support PyTorch 2.0! Accelerate training by compiling models. See the tutorial Model Compilation for details
- Add
EarlyStoppingHook
to stop training when the metric does not improve
New Features & Enhancements
- Add configurations to support
torch.compile
in Runner by @C1rN09 in #976 - Support
EarlyStoppingHook
by @nijkah in #739 - Disable duplicated warning during distributed training by @HAOCHENYE in #961
- Add
FUNCTIONS
root Registry by @HAOCHENYE in #983 - Save the "memory" field to visualization backends by @enkilee in #974
- Enable bf16 in
AmpOptimWrapper
by @C1rN09 in #960 - Support writing data to
vis_backend
with prefix by @HAOCHENYE in #972 - Support exporting logs of different ranks in debug mode by @HAOCHENYE in #968
- Silence error when
ManagerMixin
built instance with duplicate name. by @HAOCHENYE in #990
Bug fixes
- Fix optim_wrapper unittest for
pytorch < 1.10.0
by @C1rN09 in #975 - Support calculating the flops of
matmul
with single dimension matrix by @HAOCHENYE in #970 - Fix repeated warning by @HAOCHENYE in #992
- Fix lint by @zhouzaida in #993
- Fix AMP in Ascend and support using NPUJITCompile environment by @luomaoling in #994
- Fix inferencer gets wrong configs path by @HAOCHENYE in #996
Docs
- Translate "Debug Tricks" to English by @enkilee in #953
- Translate "Model Analysis" document to English by @enkilee in #956
- Translate "Model Complexity Analysis" to Chinese. by @VoyagerXvoyagerx in #969
- Add a document about setting interval by @YuetianW in #964
- Translate "how to set random seed" by @xin-li-67 in #930
- Fix typo by @zhouzaida in #965
- Fix typo in hook document by @acdart in #980
- Fix changelog date by @HAOCHENYE in #986
New Contributors
- @YuetianW made their first contribution in #964
- @enkilee made their first contribution in #953
- @acdart made their first contribution in #980
- @VoyagerXvoyagerx made their first contribution in #969
Full Changelog: v0.6.0...v0.7.0
MMEngine Release V0.6.0
v0.6.0 (02/24/2023)
Highlights
- Support
Apex
withApexOptimWrapper
- Support analyzing model complexity.
- Add
Lion
optimizer. - Support using environment variable in the config file.
New Features & Enhancements
- Support model complexity computation by @tonysy in #779
- Add Lion optimizer by @zhouzaida in #952
- Support using environment variable in config file. by @jbwang1997 in #744
- Improve registry infer_scope by @zhouzaida in #334
- Support configuring
timeout
in dist configuration by @apacha in #877 - Beautify the print result of the registry by @Eiuyc in #922
- Refine the style of table by @zhouzaida in #941
- Refine the
repr
of Registry by @zhouzaida in #942 - Feature NPUProfilerHook by @luomaoling in #925
- Refactor hooks unittest by @HAOCHENYE in #946
- Temporarily fix
collect_env
raise errors and stops programs by @C1rN09 in #944 - Make sure Tensors to broadcast is contiguous by @XWHtorrentx in #948
- Clean the UT warning caused by pytest by @zhouzaida in #947
Bug fixes
- Backend_args should not be modified by get_file_backend by @zhouzaida in #897
- Support update
np.ScalarType
data in message_hub by @HAOCHENYE in #898 - Support rendering Chinese character in
Visualizer
by @KevinNuNu in #887 - Support
Apex
withApexOptimWrapper
by @xcnick in #742 - Fix the bug of
DefaultOptimWrapperConstructor
when the shared parameters do not require the grad by @HIT-cwh in #903 - Support model complexity computation by @tonysy in #779
Docs
- Add the document for the transition between IterBasedTraining and EpochBasedTraining by @HAOCHENYE in #926
- Introduce how to set random seed by @zhouzaida in #914
- Count FLOPs and parameters by @zhouzaida in #939
- Enhance README by @Xiangxu-0103 in #835
- Add a document about debug tricks by @zhouzaida in #938
- Refine the format of changelog and visualization document by @zhouzaida in #906
- Move examples to a new directory by @zhouzaida in #911
- Resolve warnings in sphinx build by @C1rN09 in #915
- Fix docstring by @zhouzaida in #913
- How to set the interval parameter by @zhouzaida in #917
- Temporarily skip errors in building pdf docs at readthedocs by @C1rN09 in #928
- Add the links of twitter, discord, medium, and youtube by @vansin in #924
- Fix typo
shedule
by @Dai-Wenxun in #936 - Fix failed URL by @zhouzaida in #943
New Contributors
- @apacha made their first contribution in #877
- @KevinNuNu made their first contribution in #887
- @xcnick made their first contribution in #742
- @Eiuyc made their first contribution in #922
- @tonysy made their first contribution in #779
- @luomaoling made their first contribution in #925
- @XWHtorrentx made their first contribution in #948
Full Changelog: v0.5.0...v0.6.0
MMEngine Release V0.5.0
v0.5.0 (01/20/2023)
Highlights
- Add
BaseInferencer
to provide a general inference interface - Provide
ReduceOnPlateauParamScheduler
to adjust learning rate by metric - Deprecate support for Python3.6
New Features & Enhancements
- Deprecate support for Python3.6 by @HAOCHENYE in #863
- Support non-scalar type metric value by @mzr1996 in #827
- Remove unnecessary calls and lazily import to speed import performance by @zhouzaida in #837
- Support
ReduceOnPlateauParamScheduler
by @LEFTeyex in #819 - Disable warning of subprocess launched by dataloader by @HAOCHENYE in #870
- Add
BaseInferencer
to provide general interface by @HAOCHENYE in #874
Bug Fixes
- Fix support for Ascend device by @wangjiangben-hw in #847
- Fix
Config
cannot parse base config when there is.
in tmp path, etc.tmp/a.b/c
by @HAOCHENYE in #856 - Fix unloaded weights will not be initialized when using
PretrainedIinit
by @HAOCHENYE in #764 - Fix error package name defined in
PKG2PROJECT
by @HAOCHENYE in #872
Docs
- Fix typos in
advanced_tutorials/logging.md
by @RangeKing in #861 - Translate CN
train_a_gan
to EN by @yaqi0510 in #860 - Update
fileio.md
by @Xiangxu-0103 in #869 - Add Chinese documentation for
inferencer
. by @HAOCHENYE in #884
Contributors
A total of 8 developers contributed to this release. Thanks @LEFTeyex, @RangeKing, @yaqi0510, @Xiangxu-0103, @wangjiangben-hw, @mzr1996, @zhouzaida, @HAOCHENYE.
New Contributors
Full Changelog: v0.4.0...v0.5.0
MMEngine Release V0.4.0
Highlights
- Registry supports importing modules automatically
- Upgrade the documentation and provide the English documentation
- Provide
ProfileHook
to profile the running process
New Features & Enhancements
- Add
conf_path
in PetrelBackend by @sunyc11 in #774 - Support multiple
--cfg-options
. by @mzr1996 in #759 - Support passing arguments to
OptimWrapper.update_params
by @twmht in #796 - Make
get_torchvision_model
compatible with torch 1.13 by @HAOCHENYE in #793 - Support
flat_decay_mult
and fixbias_decay_mult
of depth-wise-conv inDefaultOptimWrapperConstructor
by @RangiLyu in #771 - Registry supports importing modules automatically. by @RangiLyu in #643
- Add profiler hook functionality by @BayMaxBHL in #768
- Make TTAModel compatible with FSDP. by @HAOCHENYE in #611
Bug Fixes
hub.get_model
fails on some MMCls models by @C1rN09 in #784- Fix
BaseModel.to
andBaseDataPreprocessor.to
to make them consistent withtorch.nn.Module
by @C1rN09 in #783 - Fix creating a new logger at PretrainedInit by @xiexinch in #791
- Fix
ZeroRedundancyOptimizer
ambiguous error with param groups when PyTorch < 1.12.0 by @C1rN09 in #818 - Fix MessageHub set resumed key repeatedly by @HAOCHENYE in #839
- Add
progress
argument toload_from_http
by @austinmw in #770 - Ensure metrics is not empty when saving best checkpoint by @zhouzaida in #849
Docs
- Add
contributing.md
by @HAOCHENYE in #754 - Add gif to 15 min tutorial by @HAOCHENYE in #748
- Refactor documentations and translate them to English by @zhouzaida in #786
- Fix document link by @MambaWong in #775
- Fix typos in EN
contributing.md
by @RangeKing in #792 - Translate data transform docs. by @mzr1996 in #737
- Replace markdown table with html table by @HAOCHENYE in #800
- Fix wrong example in
Visualizer.draw_polygons
by @lyviva in #798 - Fix docstring format and rescale the images by @zhouzaida in #802
- Fix failed link in registry by @zhouzaida in #811
- Fix typos by @shanmo in #814
- Fix wrong links and typos in docs by @shanmo in #815
- Translate
save_gpu_memory.md
by @xin-li-67 in #803 - Translate the documentation of hook design by @zhouzaida in #780
- Fix docstring format by @zhouzaida in #816
- Translate
registry.md
by @xin-li-67 in #817 - Update docstring of
BaseDataElement
by @Xiangxu-0103 in #836 - Fix typo by @Xiangxu-0103 in #841
- Update docstring of
structures
by @Xiangxu-0103 in #840 - Translate
optim_wrapper.md
by @xin-li-67 in #833 - Fix link error in initialize tutorial. by @HAOCHENYE in #843
- Fix table in
initialized.md
by @HAOCHENYE in #844
Contributors
A total of 16 developers contributed to this release. Thanks @BayMaxBHL, @RangeKing, @Xiangxu-0103, @xin-li-67, @twmht, @shanmo, @sunyc11, @lyviva, @austinmw, @xiexinch, @mzr1996, @RangiLyu, @MambaWong, @C1rN09, @zhouzaida, @HAOCHENYE
New Contributors
- @sunyc11 made their first contribution in #774
- @RangeKing made their first contribution in #792
- @lyviva made their first contribution in #798
- @twmht made their first contribution in #796
- @shanmo made their first contribution in #814
- @xiexinch made their first contribution in #791
Full Changelog: v0.3.2...v0.4.0
MMEngine Release V0.3.2
New Features & Enhancements
- Send git errors to subprocess.PIPE by @austinmw in #717
- Add a common
TestRunnerTestCase
to build a Runner instance. by @HAOCHENYE in #631 - Align the log by @HAOCHENYE in #436
- Log the called order of hooks during training process by @songyuc in #672
- Support setting
eta_min_ratio
inCosineAnnealingParamScheduler
by @cir7 in #725 - Enhance compatibility of
revert_sync_batchnorm
by @HAOCHENYE in #695
Bug Fixes
- Fix
distributed_training.py
in examples by @PingHGao in #700 - Format the log of
CheckpointLoader.load_checkpoint
by @HAOCHENYE in #685 - Fix bug of CosineAnnealingParamScheduler by @fangyixiao18 in #735
- Fix
add_graph
is not called bug by @shenmishajing in #632 - Fix .pre-commit-config-zh-cn.yaml pyupgrade-repo github->gitee by @BayMaxBHL in #756
Docs
- Add English docs of BaseDataset by @GT9505 in #713
- Fix
BaseDataset
typo about lazy initialization by @MengzhangLI in #733 - Fix typo by @zhouzaida in #734
- Translate visualization docs by @xin-li-67 in #692
Contributors
@austinmw @BayMaxBHL @shenmishajing @xin-li-67 @songyuc @PingHGao @MengzhangLI @cir7 @GT9505 @fangyixiao18 @zhouzaida @HAOCHENYE
MMEngine Release V0.3.1
Highlights
Fix error when saving best checkpoint in ddp-training
New Features & Enhancements
- Replace
print
withprint_log
for those functions called by runner by @HAOCHENYE in #686
Docs
- Refine Chinese tutorials by @Xiangxu-0103 in #694
- Add MMEval in README by @sanbuphy in #669
- Fix error URL in runner docstring by @HAOCHENYE in #668
- Fix error evaluator type name in
evaluator.md
by @sanbuphy in #675 - Fix typo in
utils.md
@sanbuphy in #702
Bug Fixes
- Fix error when saving best checkpoint in ddp-training by @HAOCHENYE in #682
Contributors
@Xiangxu-0103 @sanbuphy @HAOCHENYE
Full Changelog: v0.3.0...v0.3.1
MMEngine Release V0.3.0
Highlights
- Support running on Ascend chip.
- Support torch
ZeroRedundancyOptimizer
. - Fix error calculation of
eta_min
inCosineRestartParamScheduler
.
New Features & Enhancements
- Support running on Ascend chip by @wangjiangben-hw in #572
- Support torch
ZeroRedundancyOptimizer
by @nijkah in #551 - Add non-blocking feature to
BaseDataPreprocessor
by @shenmishajing in #618 - Add documents for
clip_grad
, and support clip grad by value. by @HAOCHENYE in #513 - Add ROCm info when collecting env by @zhouzaida in #633
- Add a function to mark the deprecated function. by @HAOCHENYE in #609
- Call
register_all_modules
inRegistry.get()
by @HAOCHENYE in #541 - Deprecate
_save_to_state_dict
implemented in mmengine by @HAOCHENYE in #610 - Add
ignore_keys
in ConcatDataset by @BIGWangYuDong in #556
Docs
- Fix cannot show
changelog.md
in chinese documents. by @HAOCHENYE in #606 - Fix Chinese docs whitespaces by @C1rN09 in #521
- Translate installation and 15_min by @xin-li-67 in #629
- Refine chinese doc by @Tau-J in #516
- Add MMYOLO link in README by @Xiangxu-0103 in #634
- Add MMEngine logo in docs by @zhouzaida in #641
- Fix docstring of
BaseDataset
by @HAOCHENYE in #656 - Fix docstring and documentation used for
hub.get_model
by @zengyh1900 in #659 - Fix typo in
docs/zh_cn/advanced_tutorials/visualization.md
by @MambaWong in #616 - Fix typo docstring of
DefaultOptimWrapperConstructor
by @triple-Mu in #644 - Fix typo in advanced tutorial by @cxiang26 in #650
- Fix typo in
Config
docstring by @sanbuphy in #654 - Fix typo in
docs/zh_cn/tutorials/config.md
by @Xiangxu-0103 in #596 - Fix typo in
docs/zh_cn/tutorials/model.md
by @C1rN09 in #598
Bug Fixes
- Fix error calculation of
eta_min
inCosineRestartParamScheduler
by @Z-Fran in #639 - Fix
BaseDataPreprocessor.cast_data
could not handle string data by @HAOCHENYE in #602 - Make
autocast
compatible with mps by @HAOCHENYE in #587 - Fix error format of log message by @HAOCHENYE in #508
- Fix error implementation of
is_model_wrapper
by @HAOCHENYE in #640 - Fix
VisBackend.add_config
is not called by @shenmishajing in #613 - Change
strict_load
of EMAHook to False by default by @HAOCHENYE in #642 - Fix
open
encoding problem of Config in Windows by @sanbuphy in #648 - Fix the total number of iterations in log is a float number. by @jbwang1997 in #604
- Fix
pip upgrade
CI by @HAOCHENYE in #622
Contributors
A total of 26 developers contributed to this release.
Thanks @okotaku @xin-li-67 @nijkah @shenmishajing @triple-Mu @cxiang26 @Xiangxu-0103 @sanbuphy @austinmw @yhna940 @Zhengfei-0311 @liuyanyi @vansin @MambaWong @wangjiangben-hw @zengyh1900 @Tau-J @BIGWangYuDong @jbwang1997 @C1rN09 @RangiLyu @HAOCHENYE @zhouzaida @Dai-Wenxun @Z-Fran @MengzhangLI
New Contributors
- @shenmishajing made their first contribution in #618
- @Xiangxu-0103 made their first contribution in #596
- @Tau-J made their first contribution in #516
- @wangjiangben-hw made their first contribution in #572
- @triple-Mu made their first contribution in #644
- @sanbuphy made their first contribution in #648
- @Z-Fran made their first contribution in #639
- @BIGWangYuDong made their first contribution in #556
- @zengyh1900 made their first contribution in #659
Full Changelog: v0.2.0...v0.3.0
MMEngine Release V0.2.0
Highlights
- Refactor FileIO to provide a more unified interface without BC breaking.
- Add SMDDP backend and support running on AWS.
- Add the base model for test time augmentation.
- Support converting
BN
toSyncBN
during distributed data-parallel training.
New Features & Enhancements
- Add SMDDP backend and support running on AWS by @austinmw in #579
- Refactor FileIO to provide a more unified interface without BC breaking @zhouzaida in #533
- Add test time augmentation base model by @HAOCHENYE in #538
- Use
torch.lerp\_()
to speed up EMA by @RangiLyu in #519 - Support converting
BN
toSyncBN
by config by @HAOCHENYE in #506 - Support defining metric name in wandb backend by @okotaku in #509
- Add dockerfile by @zhouzaida in #347
Bug Fixes
- Fix
LogProcessor
does not smooth loss if the name of loss doesn't start withloss
by @liuyanyi in
#539 - Fix failed to enable
detect_anomalous_params
inMMSeparateDistributedDataParallel
by @HAOCHENYE in #588 - Fix CheckpointHook behavior unexpected if given
filename_tmpl
argument by @C1rN09 in #518 - Fix error argument sequence in
FSDP
by @HAOCHENYE in #520 - Fix uploading image in wandb backend @okotaku in #510
- Fix loading state dictionary in
EMAHook
by @okotaku in #507 - Fix circle import in
EMAHook
by @HAOCHENYE in #523 - Fix unit test could fail caused by
MultiProcessTestCase
by @HAOCHENYE in #535 - Remove unnecessary "if statement" in
Registry
by @MambaWong in #536 - Fix
_save_to_state_dict
by @HAOCHENYE in #542 - Support comparing NumPy array dataset meta in
Runner.resume
by @HAOCHENYE in #511 - Use
get
instead ofpop
to dumprunner_type
inbuild_runner_from_cfg
by @nijkah in #549 - Upgrade pre-commit hooks by @zhouzaida in #576
- Delete the error comment in
registry.md
by @vansin in #514 - Fix Some out-of-date unit tests by @C1rN09 in #586
- Fix typo in
MMFullyShardedDataParallel
by @yhna940 in #569 - Update Github Action CI and CircleCI by @zhouzaida in #512
- Fix unit test in windows by @HAOCHENYE in #515
- Fix merge ci & multiprocessing unit test by @HAOCHENYE in #529
Docs
- Fix API files of English documentation by @zhouzaida in #525
- Fix typo in
instance_data.py
by @Dai-Wenxun in #530 - Fix the docstring of the model sub-package by @zhouzaida in #573
- Fix a spelling error in docs/zh_cn by @cxiang26 in #548
- Fix typo in docstring by @MengzhangLI in #527
- Update
config.md
by @Zhengfei-0311 in #562
Contributors
A total of 15 developers contributed to this release.
Thanks @nijkah @austinmw @okotaku @cxiang26 @yhna940 @liuyanyi @MambaWong @Zhengfei-0311 @Dai-Wenxun @vansin @C1rN09 @MengzhangLI @zhouzaida @HAOCHENYE @RangiLyu
New Contributors
- @nijkah made their first contribution in #549
- @okotaku made their first contribution in #510
- @cxiang26 made their first contribution in #548
- @MambaWong made their first contribution in #536
- @Zhengfei-0311 made their first contribution in #562
- @austinmw made their first contribution in #579
- @yhna940 made their first contribution in #569
- @liuyanyi made their first contribution in #539
- @MengzhangLI made their first contribution in #527
Full Changelog: v0.1.0...v0.2.0
MMEngine Release V0.1.0
The release note is coming soon.