MMEngine community collaboration :rocket: !
HAOCHENYE opened this issue · 23 comments
MMEngine community collaboration
Interested in deeply participating in OpenMMLab projects? Want to learn more about OpenMMLab's awesome tools? MMEngine calls for volunteers from the community to participate in daily development!! MMEngine will update feature requests or bug fixes tasks regularly.
If you are a new bee to the open source project, and not familiar with MMEngine. Don't worry, there are always some easy tasks for you to start with, such as document translation or typo fixes. You'll be familiar with how to post a PR and discuss it with other developers in this process 😄 , just enjoy it! 🚀 .
If you are a senior developer, but not familiar with MMEngine, you can also participate in some tasks of developing independent modules, such as customizing a learning rate scheduler or a hook. This will help you to get familiar with MMEngine's code structure and data flow.
If you are a senior developer, and familiar with MMEngine, you can participate in some challenging tasks. These tasks commonly involve more than one module and require discussion with other developers to come up with a reasonable design.
We'll update the tasks marked with different difficulty levels regularly, and you can pick a task as you wish while enjoying your coffee. Don't feel burdened by picking a task. Participating in open source is a matter of interest, and just complete it in your free time!
We appreciate all contributions to improve MMEngine 🤝.
Getting started (Easy)!
If you are not familiar with how to submit a PR, please follow the CONTRIBUTING or CONTRIBUTING_zh-CN to get started!
Click to expand
Task | Task Type | Discription | Difficulty | Status |
---|---|---|---|---|
Filter the frozen `Parameter` in `DefaultOptimWrapperConstructor` | Enhancement | See issue #1245 for more details | ⭐️ | 🤍 pick me! |
Intermediate Task
Click to expand
Task | Task Type | Discription | Difficulty | Status |
---|---|---|---|---|
Develop a training example for detection tasks | Enhancement | See issue #1171 for more details | ⭐️⭐️⭐️ | 🤍 pick me! |
Distinguish training/testing saving directory | Enhancement | See issue #671 for more details | ⭐️⭐️ | ❤️ Picked! #1036 Thanks to @shufanwu |
Clear some type: ignore flags | Code style | Adjust mypy configuration and clean the unnecessary "# type: ignore". Just open a new discussion if you want to pick this task! | ⭐️⭐️⭐️ | 🤍 pick me! |
Support gather operation in NCCL backend | Enhancement | Since gather will raise an error in nccl backend, it could be better to use torch.cuda.comm.gather to keep the compatibility. This task will solve issue #84. | ⭐️⭐️⭐️ | ❤️ Picked! #1061 Thanks to @sh0622-kim |
Using rich to beautify the ProgressBar in MMEngine | Enhancement | Using rich to beautify the ProgressBar in MMEngine. See #989 for details | ⭐️⭐️⭐️ | ❤️ Picked! #998 @Dominic23331 |
Support dumping datasets to pkl file | Enhancement | Support dumping datasets to pkl file. See #896 for details | ⭐️⭐️⭐️ | ❤️ picked #1037 Thanks to @shufanwu |
Synchronize the model buffer before saving the checkpoint and evaluating the model. | Enhancement | Synchronize the model buffer before saving the checkpoint and evaluating the model. See #1057 for details | ⭐️⭐️⭐️ | 🤍 pick me! |
Support profiling the testing/validation process of all ranks by `ProfilerHook`. | Enhancement | Support profiling the testing/validation process of all ranks by `ProfilerHook. See #1087 for details | ⭐️⭐️⭐️ | 🤍 pick me! |
Improve Visualizer Rendering Speed with OpenCV Backend | Enhancement | Improve Visualizer Rendering Speed with OpenCV Backend. See #1101 for details | ⭐️⭐️⭐️ | 🤍 pick me! |
Advanced Tasks
Click to expand
Task | Task Type | Discription | Difficulty | Status |
---|
Finished Tasks
Click to expand
Task | Task Type | Discription | Status |
---|---|---|---|
Fix Visuliazer that built vis_backends will not be used when save_dir is None | Enhancement | Fix Visuliazer that built vis_backends will not be used when save_dir is None. See #1267 for details. | ❤️ #1275 Thanks to @Xinyu302 |
Support comparing two `Config` object | Enhancement | Support comparing two `Config` object. See #1076 for details | ❤️ #1260 Thanks to @gachiemchiep |
Add a parameter to control when to save checkpoints | Enhancement | Add a parameter to control when to save checkpoints. See #1192 for details. | ❤️ #1271 Thanks to @KerwinKai |
Translate the Introduction to English. | Enhancement | Translate the get_started/introduction to English | ❤️ #1189 Thanks to @evdcush |
More accurate learning displaying | Bug Fixes | The learning rate in the log will show the first params_group in the optimizer, rather than the base learning rate of the optimizer. See issue #482 for more details | ❤️ #1019 Thanks to @AkideLiu |
Distributed training with MLflowVisBackend crashes on multiple close() called | Enhancement | See issue #1144 for more details | ❤️ #1151 Thanks to @zimonitrome |
Translate the Abstract Data Element tutorial to English. | Enhancement | Translate the advanced_tutorials/data_element to English | ❤️ #1067 Thanks to @xin-li-67 |
Add an option to control whether to use rich progress bar in BaseInference | Enhancement | Add an option to control whether to use rich progress bar in BaseInferencer, see #1112 for more information | ❤️ #1135 Thanks to @W-ZN |
Develop a training example for nlp tasks | Enhancement | See issue #1171 for more details | ❤️ #1122 Thanks to @TankNee ! |
Translate the inference docs to English | Enhancement | Translate the document to English | ❤️ #1121 Thanks to @Hongru-Xiao |
Make the input and model device types consistent | Enhancement | Make the input and model device types consistent #1092 | ❤️ #1130 Thanks to @CescMessi |
No training log when the num of iterations is smaller than the default interval | Bug fix | No training log when the num of iterations is smaller than the default interval. See more details in issue #935. | ❤️ #1046 Thanks to @shufanwu |
Customize the worker_init_fn function | Enhancement | Customize the worker_init_fn function. See more details in issue #933. | ❤️ #1038 Thanks to @shufanwu |
MessageHub.get_info() supports returning a default value if the key doesn't exit. | Enhancement | MessageHub.get_info() supports returning a default value if the key doesn't exit. See #988 for details. | ❤️#991 Thanks to @enkilee |
Translate the Evaluation design to English. | Enhancement | Translate the design/evaluation to English | ❤️ #1062 Thanks to @zccjjj |
Fix SyncBufferHook | Bux fixes | SyncBufferHook does not work properly in IterBasedTrainLoop, See issue #517 for more details. | ❤️ #982 Thanks to @Luo-Yihang |
Translate the Evaluation tutorial to English. | Enhancement | Translate the tutorials/evaluation to English | ❤️ #1053 Thanks to @LEFTeyex |
Translate the Hook Migration documentation to English. | Enhancement | Translate the migration/hook to English | ❤️ #1054 Thanks to @SheffieldCao |
Align the evaluation result in log. | Enhancement | As issue #981 says, it could be better to align the evaluation result to the previous line. This part of code should be enhanced | ❤️ #1034 Thanks to @kitecats |
Automatically Publish | Enhancement | Automatically publish models at the end of training. See issue #905 | ❤️ #987 Thanks to @KerwinKai |
Translate "Model Complexity Analysis" to Chinese | Enhancement | Translate the document to Chinese | ❤️ #969 Thanks to @VoyagerXvoyagerx |
Translate "How to set random seed" to English | Enhancement | Translate the document to English | ❤️ #930 Thanks to @xin-li-67 |
Add "memory" field to the logged file (JSON, Tensorboard, WandB, etc.). | Enhancement | As issue #963 says, it could be better to add a "memory" key to the tag, and update the unittest. | ❤️ #974 Thanks for @enkilee |
Beautify the print result of the Registry | Enhancement | Beautify the print result of the Registry. See issue #335 | ❤️ #922 Thanks to @Eiuyc |
Translate "How to set the interval parameter" to English | Enhancement | Translate the document to English | ❤️ #964 Thanks to @YuetianW |
Translate "Debug Tricks" to English | Enhancement | Translate the document to English | ❤️ #953 Thanks to @enkilee |
Translate "Model Analysis" to English | Enhancement | Translate the document to English | ❤️ #956 Thanks to @enkilee |
🚀 You can directly pick the task under this issue, and join our WeChat or Discord group for easier communication!
WeChat Group
Discord channel
https://discord.gg/MEMcMarZ
issue: Translate "Debug Tricks" to English
issue: Translate "How to set random seed" to English
Hi! This task has been picked, please choose another one 😆
Translate "Debug Tricks" to English
sorry, copy wrong. already changed it.
issue: Translate "Model Analysis" to English
Pick Translate "Model Complexity Analysis" to Chinese o(^▽^)┛
issue: Translate "The inference docs" to English
pick Add "memory" field to the logged file (JSON, Tensorboard, WandB, etc.).
pick MessageHub.get_info() supports returning a default value if the key doesn't exit.
I want to pick "Using rich to beautify the ProgressBar in MMEngine"
I want to pick "Using rich to beautify the ProgressBar in MMEngine"
Here is PR #998
issue:Translate the Introduction to English.
I want to pick "Add an option to control whether to use rich progress bar in BaseInferencer, see #1112 for more information"
I want to try to pick "Develop a training example for segmentation tasks"
discord invitation expired
discord invitation expired
updated
Both inviations of Discord and Wechat expired.