0
0
PyTorchml~20 mins

nn.Conv2d layers in PyTorch - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Conv2d Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output shape after Conv2d layer
What is the output shape of the tensor after applying this Conv2d layer?

Input tensor shape: (batch_size=1, channels=3, height=32, width=32)
Layer: nn.Conv2d(in_channels=3, out_channels=6, kernel_size=5, stride=1, padding=0)
PyTorch
import torch
import torch.nn as nn

conv = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=5, stride=1, padding=0)
input_tensor = torch.randn(1, 3, 32, 32)
output = conv(input_tensor)
print(output.shape)
A(1, 6, 27, 27)
B(1, 3, 28, 28)
C(1, 6, 28, 28)
D(1, 6, 32, 32)
Attempts:
2 left
💡 Hint
Remember the formula for output size: (W - K + 2P) / S + 1
Model Choice
intermediate
2:00remaining
Choosing Conv2d parameters for same input-output size
You want a Conv2d layer that keeps the input height and width the same after convolution.
Input shape: (batch_size=1, channels=3, height=28, width=28)
Which Conv2d layer parameters will achieve this?
Ann.Conv2d(3, 10, kernel_size=3, stride=1, padding=1)
Bnn.Conv2d(3, 10, kernel_size=5, stride=1, padding=0)
Cnn.Conv2d(3, 10, kernel_size=3, stride=2, padding=1)
Dnn.Conv2d(3, 10, kernel_size=1, stride=1, padding=0)
Attempts:
2 left
💡 Hint
Padding can help keep the size same if chosen correctly.
Hyperparameter
advanced
2:00remaining
Effect of stride on Conv2d output size
Given an input tensor of shape (1, 3, 64, 64), which Conv2d layer will produce an output with height and width equal to 16?
Ann.Conv2d(3, 8, kernel_size=3, stride=4, padding=0)
Bnn.Conv2d(3, 8, kernel_size=5, stride=2, padding=0)
Cnn.Conv2d(3, 8, kernel_size=3, stride=3, padding=1)
Dnn.Conv2d(3, 8, kernel_size=7, stride=4, padding=0)
Attempts:
2 left
💡 Hint
Use the formula: output = (W - K + 2P)/S + 1 and solve for output=16.
🔧 Debug
advanced
2:00remaining
Identifying error in Conv2d layer usage
What error will this code raise when run?

conv = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3)
input_tensor = torch.randn(1, 1, 28, 28)
output = conv(input_tensor)
PyTorch
import torch
import torch.nn as nn
conv = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3)
input_tensor = torch.randn(1, 1, 28, 28)
output = conv(input_tensor)
ATypeError: Conv2d() missing required positional argument 'stride'
BRuntimeError: Given groups=1, weight of size [6, 3, 3, 3], expected input[1, 1, 28, 28] to have 3 channels, but got 1 channels instead
CValueError: kernel_size must be odd
DNo error, runs successfully
Attempts:
2 left
💡 Hint
Check if input channels match the Conv2d in_channels parameter.
🧠 Conceptual
expert
3:00remaining
Understanding dilation effect in Conv2d
How does increasing the dilation parameter in nn.Conv2d affect the receptive field and output size?

Choose the correct statement.
ADilation has no effect on receptive field or output size, only on computation speed
BIncreasing dilation decreases the receptive field and increases output size
CIncreasing dilation increases output size but keeps receptive field constant
DIncreasing dilation increases the receptive field without changing the kernel size, and reduces the output size if padding is not adjusted
Attempts:
2 left
💡 Hint
Think of dilation as spacing out kernel elements, making the filter cover a larger area.