Skip to content
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

[Fix] BaseModel & BaseDataPreprocessor to method to be consistent with torch.nn.Module #783

Merged
merged 4 commits into from
Dec 5, 2022

Conversation

C1rN09
Copy link
Collaborator

@C1rN09 C1rN09 commented Dec 2, 2022

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

Make BaseModel.to and BaseDataPreprocessor.to methods to be consistent with torch.nn.Module.to, i.e. it can accept devices and dtypes as arguments and handle these cases properly.

Before this PR:

class Model(BaseModel):
    def __init__(self):
        super().__init__()
        self.linear = nn.Linear(4, 4)
    def forward(self):
        pass

model = Model()
model.to('cuda')  # correct
model.to(torch.half)  # raise TypeError
model.to(device='cuda', dtype=torch.half)  # no exception, but dtype ignored

After this PR:

model.to('cuda')
model.to(torch.half)
model.to('cpu', torch.float64)
model.to('cpu', dtype=torch.float64)
model.to(torch.half, device='cpu')  # error, this is not supported by nn.Module

Modification

As in PR

BC-breaking (Optional)

Probably, because before this PR dtype kwargs are ignored

Use cases (Optional)

If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.

Checklist

  1. Pre-commit or other linting tools are used to fix the potential lint issues.
  2. The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
  3. If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMCls.
  4. The documentation has been modified accordingly, like docstring or example tutorials.

@C1rN09 C1rN09 changed the title [Fix] BaseModel to method to be consistent with torch.nn.Module [Fix] BaseModel & BaseDataPreprocessor to method to be consistent with torch.nn.Module Dec 2, 2022
HAOCHENYE
HAOCHENYE previously approved these changes Dec 2, 2022
Copy link
Collaborator

@HAOCHENYE HAOCHENYE left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved!!!
image

@codecov
Copy link

codecov bot commented Dec 5, 2022

Codecov Report

Base: 78.68% // Head: 78.66% // Decreases project coverage by -0.02% ⚠️

Coverage data is based on head (7c47aa2) compared to base (7e787d8).
Patch coverage: 40.00% of modified lines in pull request are covered.

❗ Current head 7c47aa2 differs from pull request most recent head c70ddf9. Consider uploading reports for the commit c70ddf9 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #783      +/-   ##
==========================================
- Coverage   78.68%   78.66%   -0.03%     
==========================================
  Files         128      128              
  Lines        9343     9348       +5     
  Branches     1846     1848       +2     
==========================================
+ Hits         7352     7354       +2     
- Misses       1675     1679       +4     
+ Partials      316      315       -1     
Flag Coverage Δ
unittests 78.66% <40.00%> (-0.03%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
mmengine/hub/hub.py 24.32% <0.00%> (-1.39%) ⬇️
mmengine/model/base_model/data_preprocessor.py 85.71% <20.00%> (-1.93%) ⬇️
mmengine/model/base_model/base_model.py 84.61% <100.00%> (+1.49%) ⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@zhouzaida zhouzaida merged commit bd67913 into open-mmlab:main Dec 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants