0
0
PyTorchml~10 mins

torchvision detection models in PyTorch - Interactive Code Practice

Choose your learning style9 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to load a pre-trained Faster R-CNN model from torchvision.

PyTorch
import torchvision.models.detection as detection
model = detection.[1](pretrained=True)
Drag options to blanks, or click blank then click option'
Afasterrcnn_resnet50_fpn
Bresnet50
Cmobilenet_v2
Dvgg16
Attempts:
3 left
💡 Hint
Common Mistakes
Using classification model names like 'resnet50' instead of detection models.
Forgetting to set pretrained=True to load weights.
2fill in blank
medium

Complete the code to put the model in evaluation mode before inference.

PyTorch
model = detection.fasterrcnn_resnet50_fpn(pretrained=True)
model.[1]()
Drag options to blanks, or click blank then click option'
Aeval
Bfit
Ctrain
Dpredict
Attempts:
3 left
💡 Hint
Common Mistakes
Using train() mode during inference, which can cause inconsistent results.
Trying to call predict() which is not a PyTorch model method.
3fill in blank
hard

Fix the error in the code to move the model to the GPU device if available.

PyTorch
import torch
model = detection.fasterrcnn_resnet50_fpn(pretrained=True)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = model.[1](device)
Drag options to blanks, or click blank then click option'
Amove
Bto
Ccuda
Ddevice
Attempts:
3 left
💡 Hint
Common Mistakes
Using cuda() directly, which fails if CUDA is not available.
Using non-existent methods like device() or move().
4fill in blank
hard

Fill in the blank to perform inference with the model.

PyTorch
import torch
from PIL import Image
from torchvision import transforms

image = Image.open('image.jpg').convert('RGB')
transform = transforms.Compose([
    transforms.ToTensor(),
])
input_tensor = transform(image)
model.eval()
with torch.no_grad():
    outputs = model([1])
Drag options to blanks, or click blank then click option'
Aunsqueeze
Bsqueeze
Cinput_tensor
D[input_tensor]
Attempts:
3 left
💡 Hint
Common Mistakes
Passing input_tensor directly instead of a list.
Trying to add a batch dimension with unsqueeze(), which is unnecessary and incorrect for these models.
5fill in blank
hard

Fill all three blanks to filter detection results by confidence score and print detected labels.

PyTorch
labels = outputs[0]['labels']
scores = outputs[0]['scores']
threshold = 0.8
filtered_indices = [i for i, score in enumerate(scores) if score [1] threshold]
filtered_labels = [labels[i].item() for i in filtered_indices]
print('Detected labels:', [2])

# Convert label IDs to class names
COCO_INSTANCE_CATEGORY_NAMES = [
    '__background__', 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus',
    'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign',
    'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
    'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag',
    'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball', 'kite',
    'baseball bat', 'baseball glove', 'skateboard', 'surfboard', 'tennis racket',
    'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana',
    'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza',
    'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'dining table',
    'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
    'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock',
    'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush'
]

filtered_names = [COCO_INSTANCE_CATEGORY_NAMES[label] for label in filtered_labels]
print('Detected class names:', [3])
Drag options to blanks, or click blank then click option'
A>
B>=
Cfiltered_labels
Dfiltered_names
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>' which excludes scores exactly equal to threshold.
Printing class names before converting label IDs.
Confusing filtered_labels and filtered_names in print statements.