Challenge - 5 Problems
Image Dataset Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of loading images with ImageFolder
What will be the output shape of the first image tensor loaded using torchvision.datasets.ImageFolder with default ToTensor transform?
PyTorch
from torchvision import datasets, transforms transform = transforms.ToTensor() dataset = datasets.ImageFolder(root='data/train', transform=transform) image, label = dataset[0] print(image.shape)
Attempts:
2 left
💡 Hint
Remember that ToTensor converts images to CxHxW format.
✗ Incorrect
The ToTensor() transform converts PIL images to tensors with shape (channels, height, width). For color images, channels = 3 (RGB).
❓ data_output
intermediate2:00remaining
Number of classes in ImageFolder dataset
Given an ImageFolder dataset loaded from a folder with subfolders 'cats', 'dogs', and 'rabbits', what is the value of dataset.classes?
PyTorch
from torchvision import datasets dataset = datasets.ImageFolder(root='data/train') print(dataset.classes)
Attempts:
2 left
💡 Hint
ImageFolder sorts folder names alphabetically to assign classes.
✗ Incorrect
ImageFolder sorts the folder names alphabetically to create the classes list. So the order is ['cats', 'dogs', 'rabbits'].
🔧 Debug
advanced2:00remaining
Identify error loading images with ImageFolder
What error will occur when running this code if the root folder contains a file that is not an image or folder?
from torchvision import datasets
dataset = datasets.ImageFolder(root='data/train')
image, label = dataset[0]
PyTorch
from torchvision import datasets dataset = datasets.ImageFolder(root='data/train') image, label = dataset[0]
Attempts:
2 left
💡 Hint
ImageFolder tries to open all files as images.
✗ Incorrect
If a file is not a valid image, PIL will raise UnidentifiedImageError when ImageFolder tries to open it.
🚀 Application
advanced2:00remaining
Transform pipeline for ImageFolder dataset
Which transform pipeline correctly resizes images to 128x128, converts to tensor, and normalizes with mean=0.5 and std=0.5 for all channels?
Attempts:
2 left
💡 Hint
Resize should come before ToTensor, and Normalize after ToTensor.
✗ Incorrect
The correct order is Resize, then ToTensor, then Normalize. Resize needs a tuple for size. Normalize expects 3 values for RGB channels.
🧠 Conceptual
expert2:00remaining
Why use ImageFolder for image datasets?
What is the main advantage of using torchvision.datasets.ImageFolder to load image datasets organized in folders?
Attempts:
2 left
💡 Hint
Think about how labels are assigned in ImageFolder.
✗ Incorrect
ImageFolder reads images from subfolders and assigns labels based on folder names, simplifying dataset creation.