-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Support for linearly learning rate decay #1627
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docstring and unit tests are needed.
Hi @Sharpiless , is there any progress? |
8f5eb7e
to
6ed7bd3
Compare
…erHook, add unit test add docstring add docstring update linear lr momentum schedule test fix ci Fix CI
6ed7bd3
to
3c8376a
Compare
add lr and momentum hook to runner and hooks package
tests/test_runner/test_hooks.py
Outdated
@@ -711,6 +711,83 @@ def test_cosine_runner_hook(multi_optimizers): | |||
hook.writer.add_scalars.assert_has_calls(calls, any_order=True) | |||
|
|||
|
|||
@pytest.mark.parametrize('multi_optimziers', (True, False)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pytest.mark.parametrize('multi_optimziers', (True, False)) | |
@pytest.mark.parametrize('multi_optimizers', (True, False)) |
tests/test_runner/test_hooks.py
Outdated
@@ -711,6 +711,83 @@ def test_cosine_runner_hook(multi_optimizers): | |||
hook.writer.add_scalars.assert_has_calls(calls, any_order=True) | |||
|
|||
|
|||
@pytest.mark.parametrize('multi_optimziers', (True, False)) | |||
def test_linear_runner_hook(multi_optimziers): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
def test_linear_runner_hook(multi_optimziers): | |
def test_linear_runner_hook(multi_optimizers): |
tests/test_runner/test_hooks.py
Outdated
|
||
# TODO: use a more elegant way to check values | ||
assert hasattr(hook, 'writer') | ||
if multi_optimziers: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if multi_optimziers: | |
if multi_optimizers: |
Hi @Sharpiless!First of all, we want to express our gratitude for your significant PR in the MMCV project. Your contribution is highly appreciated, and we are grateful for your efforts in helping improve this open-source project during your personal time. We believe that many developers will benefit from your PR. We would also like to invite you to join our Special Interest Group (SIG) private channel on Discord, where you can share your experiences, ideas, and build connections with like-minded peers. To join the SIG channel, simply message moderator— OpenMMLab on Discord or briefly share your open-source contributions in the #introductions channel and we will assist you. Look forward to seeing you there! Join us :https://discord.gg/UjgXkPWNqA If you have WeChat account,welcome to join our community on WeChat. You can add our assistant :openmmlabwx. Please add "mmsig + Github ID" as a remark when adding friends:) |
Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
I tried to re-implement pix2seq bug did not find linearly learning rate decay in mmdetection
Modification
add "LinearlyDecayLrUpdaterHook"
test config_file:
lr curve:
BC-breaking (Optional)
Does the modification introduce changes that break the backward-compatibility of the downstream repositories?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist
Before PR:
After PR: