Bird
Raised Fist0
PyTorchml~20 mins

torchvision detection models in PyTorch - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Torchvision Detection Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Model Choice
intermediate
2:00remaining
Choosing the right torchvision detection model for small objects

You want to detect very small objects in images using torchvision detection models. Which model is generally best suited for this task?

ARetinaNet without FPN
BSSD with a VGG16 backbone
CFaster R-CNN with a ResNet-50 backbone and Feature Pyramid Network (FPN)
DMask R-CNN without any backbone network
Attempts:
2 left
💡 Hint

Think about models that use multi-scale features to detect objects of different sizes.

❓ Predict Output
intermediate
2:00remaining
Output shape of torchvision Faster R-CNN predictions

Given a batch of 2 images passed through a pretrained Faster R-CNN model from torchvision, what is the type and length of the output?

PyTorch
import torch
import torchvision
model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)
model.eval()
inputs = [torch.randn(3, 300, 400), torch.randn(3, 500, 600)]
outputs = model(inputs)
print(type(outputs), len(outputs))
A<class 'list'> 2
B<class 'torch.Tensor'> 2
C<class 'dict'> 2
D<class 'list'> 1
Attempts:
2 left
💡 Hint

Check the model's documentation for output format when passing a list of images.

❓ Hyperparameter
advanced
2:00remaining
Effect of changing the IoU threshold in torchvision detection models

In torchvision's Faster R-CNN, what is the effect of increasing the IoU threshold used in the Non-Maximum Suppression (NMS) step during inference?

AMore overlapping boxes are kept, potentially increasing duplicate detections
BFewer boxes are kept, reducing duplicate detections but possibly missing objects
CThe model trains faster but with lower accuracy
DThe backbone network changes its feature extraction layers
Attempts:
2 left
💡 Hint

Think about what happens when the threshold for overlap to suppress boxes is higher.

🔧 Debug
advanced
2:00remaining
Debugging a runtime error in torchvision Mask R-CNN training

You get the error: 'TypeError: forward() missing 1 required positional argument: "targets"' when training Mask R-CNN from torchvision. What is the most likely cause?

AThe input images are not normalized correctly
BYou forgot to pass the target annotations (bounding boxes and masks) to the model during training
CThe model backbone is not pretrained
DYou passed the targets as a list instead of a dictionary
Attempts:
2 left
💡 Hint

Check the model's forward method signature for training mode.

❓ Metrics
expert
3:00remaining
Interpreting mAP metric for torchvision detection models

You evaluate a torchvision Faster R-CNN model on a test set and get a mean Average Precision (mAP) of 0.75 at IoU=0.5. What does this number mean?

AThe model detects 75% of objects but with no overlap requirement
BThe model's classification accuracy is 75% on detected objects
CThe model's loss during training was 0.75 at IoU=0.5
DOn average, the model correctly detects 75% of objects with at least 50% overlap with ground truth
Attempts:
2 left
💡 Hint

Recall what mAP and IoU thresholds represent in object detection evaluation.

Practice

(1/5)
1. Which of the following is a detection model provided by torchvision for finding objects in images?
easy
A. ResNet
B. Faster R-CNN
C. VGG16
D. Transformer

Solution

  1. Step 1: Understand torchvision detection models

    torchvision offers models specifically for object detection like Faster R-CNN, Mask R-CNN, and RetinaNet.
  2. Step 2: Identify the correct model

    ResNet and VGG16 are classification models, and Transformer is a general architecture, not a torchvision detection model.
  3. Final Answer:

    Faster R-CNN -> Option B
  4. Quick Check:

    Detection model = Faster R-CNN [OK]
Hint: Detection models include 'R-CNN' names in torchvision [OK]
Common Mistakes:
  • Confusing classification models with detection models
  • Thinking Transformer is a torchvision detection model
  • Mixing up model types
2. Which code snippet correctly loads a pretrained Faster R-CNN model from torchvision?
easy
A. model = torchvision.models.detection.fasterrcnn_resnet50_fpn(weights='DEFAULT')
B. model = torchvision.models.fasterrcnn_resnet50_fpn(pretrained=True)
C. model = torchvision.detection.fasterrcnn_resnet50_fpn(pretrained=True)
D. model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=False)

Solution

  1. Step 1: Check the correct module and argument

    In recent torchvision versions, detection models are under torchvision.models.detection and use weights='DEFAULT' instead of pretrained=True.
  2. Step 2: Identify the correct syntax

    model = torchvision.models.detection.fasterrcnn_resnet50_fpn(weights='DEFAULT') uses the correct module path and argument for loading pretrained weights.
  3. Final Answer:

    model = torchvision.models.detection.fasterrcnn_resnet50_fpn(weights='DEFAULT') -> Option A
  4. Quick Check:

    Use weights='DEFAULT' to load pretrained detection models [OK]
Hint: Use weights='DEFAULT' for pretrained detection models [OK]
Common Mistakes:
  • Using pretrained=True instead of weights='DEFAULT'
  • Wrong module path
  • Missing 'models' in import path
3. What will be the output type of the following code snippet?
import torch
import torchvision
model = torchvision.models.detection.fasterrcnn_resnet50_fpn(weights='DEFAULT')
model.eval()
inputs = [torch.rand(3, 300, 400)]
outputs = model(inputs)
print(type(outputs))
medium
A.
B.
C.
D.

Solution

  1. Step 1: Understand model output format

    torchvision detection models return a list of dictionaries, one per input image.
  2. Step 2: Check the type of outputs variable

    Since inputs is a list with one tensor, outputs will be a list containing one dictionary.
  3. Final Answer:

    <class 'list'> -> Option D
  4. Quick Check:

    Detection model output = list of dicts [OK]
Hint: Detection models output a list, one dict per input image [OK]
Common Mistakes:
  • Expecting a single tensor output
  • Confusing output with dict directly
  • Not wrapping inputs in a list
4. Identify the error in this code snippet that tries to use a pretrained Mask R-CNN model:
import torchvision
model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)
model.eval()
medium
A. The function name should be fasterrcnn_resnet50_fpn
B. Mask R-CNN is not available in torchvision
C. The argument 'pretrained' is deprecated; use 'weights' instead
D. Missing import for torch

Solution

  1. Step 1: Check function and argument usage

    Mask R-CNN is available as maskrcnn_resnet50_fpn in torchvision.models.detection.
  2. Step 2: Identify deprecated argument

    Using pretrained=True is deprecated; the correct way is weights='DEFAULT'.
  3. Final Answer:

    The argument 'pretrained' is deprecated; use 'weights' instead -> Option C
  4. Quick Check:

    Use weights='DEFAULT' instead of pretrained=True [OK]
Hint: Replace pretrained=True with weights='DEFAULT' [OK]
Common Mistakes:
  • Using deprecated pretrained argument
  • Confusing model names
  • Assuming Mask R-CNN is missing
5. You want to fine-tune a pretrained RetinaNet model from torchvision on your custom dataset with 5 classes. Which step is necessary before training?
hard
A. Replace the model's box predictor head to output 6 classes (5 + background)
B. Change the input image size to 224x224
C. Set pretrained=False to train from scratch
D. Freeze all layers except the backbone

Solution

  1. Step 1: Understand class output adjustment

    Detection models include a background class, so for 5 classes, output head must predict 6 classes.
  2. Step 2: Modify the box predictor head

    Replace the box predictor to match the number of classes (5 + 1 background) before training.
  3. Final Answer:

    Replace the model's box predictor head to output 6 classes (5 + background) -> Option A
  4. Quick Check:

    Adjust output head for custom classes [OK]
Hint: Add 1 for background class when changing output head [OK]
Common Mistakes:
  • Not adjusting output head for new classes
  • Changing input size unnecessarily
  • Freezing all layers without fine-tuning head
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard