Challenge - 5 Problems
Convolution Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output shape after convolution with stride and padding
Given a 1-channel input tensor of shape (1, 1, 10, 10), a convolutional layer with kernel size 3, stride 2, and padding 1 is applied. What is the shape of the output tensor?
PyTorch
import torch import torch.nn as nn input_tensor = torch.randn(1, 1, 10, 10) conv = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3, stride=2, padding=1) output = conv(input_tensor) output.shape
Attempts:
2 left
💡 Hint
Recall the formula for output size: floor((input + 2*padding - kernel_size)/stride) + 1
✗ Incorrect
The output height and width are calculated as floor((10 + 2*1 - 3)/2) + 1 = floor(9/2) + 1 = 4 + 1 = 5. So output shape is (1, 1, 5, 5).
🧠 Conceptual
intermediate1:30remaining
Effect of stride on convolution output size
Which statement correctly describes the effect of increasing the stride in a convolutional layer?
Attempts:
2 left
💡 Hint
Think about how stride controls the step size when sliding the kernel.
✗ Incorrect
Stride controls how far the kernel moves each step. Larger stride means fewer positions, so output size decreases.
❓ Metrics
advanced2:00remaining
Padding effect on output size with kernel size 5
A convolutional layer uses kernel size 5 and stride 1 on an input of size 28x28. Which padding value will keep the output size the same as the input size?
Attempts:
2 left
💡 Hint
Use the formula: output = floor((input + 2*padding - kernel_size)/stride) + 1
✗ Incorrect
To keep output size same as input (28), solve 28 = floor((28 + 2*padding - 5)/1) + 1. This gives padding = 2.
🔧 Debug
advanced1:30remaining
Identify the error in convolution output size calculation
A user calculates the output size of a convolution as output = (input_size - kernel_size + 2*padding) / stride + 1 without flooring the division. What problem can this cause?
Attempts:
2 left
💡 Hint
Tensor shapes must be integers.
✗ Incorrect
Output size must be an integer because tensor dimensions cannot be fractional. Not flooring leads to float output size, causing errors.
❓ Model Choice
expert2:30remaining
Choosing padding and stride for specific output size
You want a convolutional layer with kernel size 4 on a 32x32 input to produce an output of size 15x15. Which combination of stride and padding achieves this?
Attempts:
2 left
💡 Hint
Use output size formula and solve for stride and padding.
✗ Incorrect
Using output = floor((32 + 2*padding - kernel_size)/stride) + 1, with stride=2 and padding=0: floor((32 + 0 - 4)/2) + 1 = floor(28/2) + 1 = 14 + 1 = 15.