Challenge - 5 Problems
Custom Dataset Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of a simple custom Dataset __getitem__
What is the output of this code snippet when accessing dataset[1]?
PyTorch
import torch from torch.utils.data import Dataset class MyDataset(Dataset): def __init__(self): self.data = [10, 20, 30] def __len__(self): return len(self.data) def __getitem__(self, idx): return self.data[idx] * 2 dataset = MyDataset() print(dataset[1])
Attempts:
2 left
💡 Hint
Remember __getitem__ returns data[idx] multiplied by 2.
✗ Incorrect
The __getitem__ method returns the element at index 1 (which is 20) multiplied by 2, so 40.
❓ data_output
intermediate2:00remaining
Length of a custom Dataset
What is the output of len(dataset) for this custom Dataset?
PyTorch
from torch.utils.data import Dataset class SampleDataset(Dataset): def __init__(self): self.samples = list(range(7)) def __len__(self): return len(self.samples) def __getitem__(self, idx): return self.samples[idx] dataset = SampleDataset() print(len(dataset))
Attempts:
2 left
💡 Hint
Check how many elements are in samples list.
✗ Incorrect
The samples list has 7 elements (0 to 6), so len(dataset) returns 7.
🔧 Debug
advanced2:00remaining
Identify the error in this custom Dataset code
What error will this code raise when trying to create the dataset instance?
PyTorch
from torch.utils.data import Dataset class BrokenDataset(Dataset): def __init__(self): self.data = [1, 2, 3] def __getitem__(self, idx): return self.data[idx] # Missing __len__ method dataset = BrokenDataset() print(len(dataset))
Attempts:
2 left
💡 Hint
Dataset requires __len__ method to work properly.
✗ Incorrect
PyTorch Dataset requires __len__ method. Without it, calling len(dataset) raises TypeError.
🚀 Application
advanced2:00remaining
Custom Dataset with transform application
Given this custom Dataset, what will be the output of dataset[0]?
PyTorch
from torch.utils.data import Dataset def add_five(x): return x + 5 class TransformDataset(Dataset): def __init__(self, data, transform=None): self.data = data self.transform = transform def __len__(self): return len(self.data) def __getitem__(self, idx): sample = self.data[idx] if self.transform: sample = self.transform(sample) return sample data = [1, 2, 3] dataset = TransformDataset(data, transform=add_five) print(dataset[0])
Attempts:
2 left
💡 Hint
Transform adds 5 to the original data element.
✗ Incorrect
dataset[0] returns data[0] + 5 = 1 + 5 = 6 because transform is applied.
🧠 Conceptual
expert2:00remaining
Why implement a custom Dataset class in PyTorch?
Which of the following is the best reason to create a custom Dataset class in PyTorch?
Attempts:
2 left
💡 Hint
Think about what Dataset controls in PyTorch data handling.
✗ Incorrect
Custom Dataset defines how data is loaded and accessed, enabling flexible data handling.