B. Missing import of DataLoader from torch.utils.data
C. MNIST dataset does not support transforms
D. Transforms.Resize cannot resize images
Solution
Step 1: Check imports for DataLoader usage
DataLoader is used but not imported, causing a NameError.
Step 2: Verify other parts of the code
Transforms.Resize and MNIST support transforms; batch_size can be any positive integer.
Final Answer:
Missing import of DataLoader from torch.utils.data -> Option B
Quick Check:
DataLoader must be imported before use [OK]
Hint: Always import DataLoader before using it [OK]
Common Mistakes:
Forgetting to import DataLoader
Thinking MNIST doesn't support transforms
Assuming Resize is invalid for MNIST
5. You want to load CIFAR10 images resized to 64x64 pixels, normalized with mean=[0.5,0.5,0.5] and std=[0.5,0.5,0.5], and shuffled in batches of 128. Which code snippet correctly achieves this?
hard
A. transform = transforms.Compose([transforms.Resize((64,64)), transforms.ToTensor()])
data = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
loader = DataLoader(data, batch_size=128, shuffle=True)
B. transform = transforms.Compose([transforms.ToTensor(), transforms.Resize(64), transforms.Normalize([0.5]*3, [0.5]*3)])
data = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
loader = DataLoader(data, batch_size=128, shuffle=False)
C. transform = transforms.Compose([transforms.Resize(64), transforms.Normalize([0.5]*3, [0.5]*3)])
data = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
loader = DataLoader(data, batch_size=64, shuffle=True)
D. transform = transforms.Compose([transforms.Resize((64,64)), transforms.ToTensor(), transforms.Normalize([0.5]*3, [0.5]*3)])
data = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
loader = DataLoader(data, batch_size=128, shuffle=True)
Solution
Step 1: Check transform order and parameters
Resize must be first with size (64,64), then ToTensor, then Normalize with correct mean and std.
Step 2: Verify DataLoader parameters
Batch size is 128 and shuffle=True as required.
Step 3: Compare options
transform = transforms.Compose([transforms.Resize((64,64)), transforms.ToTensor(), transforms.Normalize([0.5]*3, [0.5]*3)])
data = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
loader = DataLoader(data, batch_size=128, shuffle=True) matches all requirements exactly; others have wrong order, missing steps, or wrong batch/shuffle.
Final Answer:
transform = transforms.Compose([transforms.Resize((64,64)), transforms.ToTensor(), transforms.Normalize([0.5]*3, [0.5]*3)])
data = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
loader = DataLoader(data, batch_size=128, shuffle=True) -> Option D