-
Notifications
You must be signed in to change notification settings - Fork 7.1k
Concatenate torchvision.datasets.FakeData with another dataset -> cannot load it #3517
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
Comments
Yes, the target should be a I'm happy to accept a PR adding a |
target -> target.item() so it's an int instead of a long tensor
Anybody working on this? I can send a PR otherwise. |
@avijit9 Go ahead! |
@pmeier Shouldn't this issue be closed? |
Indeed it should. If the PR contains a certain keyword together with the issue number, GitHub will close the issue automatically when the PR is merged. You used a keyword in your PR that is not recognized by GitHub:
|
Uh oh!
There was an error while loading. Please reload this page.
🐛 Bug
If you concatenate a dataset such as CIFAR10 with FakeData, you get error
To Reproduce
Steps to reproduce the behavior:
cifar_dataset = torchvision.datasets.CIFAR10(...)
fake_dataset = torchvision.datasets.FakeData(...)
train_data = Concat([cifar_dataset, fake_dataset])
train_loader = DataLoader(train_data, ...)
for data in train_loader
then errorAdditional context
The reason why it happens is the labels in CIFAR10 are int and labels in FakeData are tensors. When concatenating them to construct a batch, the batch labels look like [0,1,2,3,tensor(0),3,4,5,6,tensor(2)...].
I can solve this bug by letting
target_transform=int
when I load fake_dataset. However, this is very hard to debug. I assume that the default target type in the FakeData source code should be set to int instead of long tensor.Here:
https://pytorch.org/vision/0.8/_modules/torchvision/datasets/fakedata.html#FakeData
in function
__getitem__
target = torch.randint(0, self.num_classes, size=(1,), dtype=torch.long)[0]
It's long tensor. It should be int.
cc @pmeier @fmassa @vfdev-5
The text was updated successfully, but these errors were encountered: