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

Revert part of #10279 #10376

Merged
merged 6 commits into from
Nov 8, 2021
Merged

Revert part of #10279 #10376

merged 6 commits into from
Nov 8, 2021

Conversation

carmocca
Copy link
Contributor

@carmocca carmocca commented Nov 5, 2021

What does this PR do?

We shouldn't support this, as this is a bug in the DataLoader implementation.

Adding arbitrary **kwargs to a custom DataLoader allows for duplicate arguments.
This is something that should be checked by the user.

The fix that this PR removes only works for the first argument and if the name is "dataset", but this would still break for any of the other duplications.

Instead, the author of the DataLoader should write something like:

def __init__(self, value: int = 2, *args, **kwargs):
    if "dataset" in kwargs:
        dataset = kwargs["dataset"]
    else:
        dataset = range(value)
    super().__init__(dataset, *args, **kwargs)

Partly reverts #10279
Part of #10329

A follow-up PR will add a MisconfigurationException to help the user in these cases.

Does your PR introduce any breaking changes? If yes, please list them.

This will no longer work for anybody already relying on this. Lite is experimental

Before submitting

  • Was this discussed/approved via a GitHub issue? (not for typos and docs)
  • Did you read the contributor guideline, Pull Request section?
  • Did you make sure your PR does only one thing, instead of bundling different changes together?
  • [n/a] Did you make sure to update the documentation with your changes? (if necessary)
  • [n/a] Did you write any new necessary tests? (not for typos and docs)
  • Did you verify new and existing tests pass locally with your changes?
  • Did you list all the breaking changes introduced by this pull request?
  • Did you update the CHANGELOG? (not for typos, docs, test updates, or internal minor changes/refactorings)

PR review

Anyone in the community is welcome to review the PR.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

  • Is this pull request ready for review? (if not, please submit in draft mode)
  • Check that all items from Before submitting are resolved
  • Make sure the title is self-explanatory and the description concisely explains the PR
  • Add labels and milestones (and optionally projects) to the PR so it can be classified

@carmocca carmocca added bug Something isn't working fabric lightning.fabric.Fabric labels Nov 5, 2021
@carmocca carmocca added this to the 1.5.x milestone Nov 5, 2021
@carmocca carmocca self-assigned this Nov 5, 2021
@carmocca carmocca added the data handling Generic data-related topic label Nov 5, 2021
Copy link
Contributor

@tchaton tchaton left a comment

Choose a reason for hiding this comment

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

LGTM !

@@ -164,57 +164,6 @@ def test_setup_dataloaders_return_type():
assert lite_dataloader1.dataset is dataset1


def test_setup_custom_dataloaders():
Copy link
Contributor

Choose a reason for hiding this comment

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

We could have a custom dataloader using only a dataset as a test.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We already test that in tests/trainer/test_data_loading.py

Copy link
Contributor

Choose a reason for hiding this comment

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

I meant, we should unittest the context manager to make sure the params are

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@tchaton isn't that covered by the test that @awaelchli added in #10334?

@mergify mergify bot added ready PRs ready to be merged has conflicts labels Nov 5, 2021
@carmocca carmocca enabled auto-merge (squash) November 5, 2021 18:07
@mergify mergify bot removed the has conflicts label Nov 5, 2021
Copy link
Contributor

@tchaton tchaton left a comment

Choose a reason for hiding this comment

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

LGTM ! @carmocca I added a test to ensure the new context manager is being unit-tested.

@@ -164,57 +164,6 @@ def test_setup_dataloaders_return_type():
assert lite_dataloader1.dataset is dataset1


def test_setup_custom_dataloaders():
Copy link
Contributor

Choose a reason for hiding this comment

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

I meant, we should unittest the context manager to make sure the params are

@carmocca carmocca merged commit 613aa09 into master Nov 8, 2021
@carmocca carmocca deleted the revert/part-of-10279 branch November 8, 2021 11:29
carmocca added a commit that referenced this pull request Nov 8, 2021
awaelchli pushed a commit that referenced this pull request Nov 9, 2021
lexierule pushed a commit that referenced this pull request Nov 9, 2021
Raalsky pushed a commit to neptune-ai/pytorch-lightning that referenced this pull request Nov 23, 2021
@rohitgr7 rohitgr7 mentioned this pull request Feb 7, 2022
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working data handling Generic data-related topic fabric lightning.fabric.Fabric ready PRs ready to be merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants