Challenge - 5 Problems
Pooling Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output shape after MaxPooling2D layer
Given the following TensorFlow code, what is the shape of the output tensor after applying the MaxPooling2D layer?
TensorFlow
import tensorflow as tf input_tensor = tf.random.uniform(shape=(1, 28, 28, 3)) max_pool = tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=2) output_tensor = max_pool(input_tensor) output_shape = output_tensor.shape
Attempts:
2 left
💡 Hint
Remember that MaxPooling2D with pool_size (2,2) and stride 2 reduces each spatial dimension by half when padding is 'valid'.
✗ Incorrect
The input has height and width 28. MaxPooling2D with pool size 2 and stride 2 reduces each dimension by half, so output height and width become 14. The batch size and channels remain the same.
🧠 Conceptual
intermediate1:30remaining
Difference between MaxPooling and AveragePooling
Which statement correctly describes the difference between MaxPooling and AveragePooling layers in convolutional neural networks?
Attempts:
2 left
💡 Hint
Think about how each pooling method summarizes the values in a small region.
✗ Incorrect
MaxPooling picks the highest value in the window, emphasizing strong features. AveragePooling computes the mean, smoothing the features.
❓ Hyperparameter
advanced2:00remaining
Effect of stride on output size in pooling layers
If you apply a MaxPooling2D layer with pool_size=(3,3) and stride=1 on an input tensor of shape (1, 10, 10, 1) with padding='valid', what will be the spatial dimensions (height and width) of the output?
Attempts:
2 left
💡 Hint
Use the formula: output_size = (input_size - pool_size) / stride + 1
✗ Incorrect
With input size 10, pool size 3, stride 1, and valid padding, output size = (10 - 3)/1 + 1 = 7 + 1 = 8 for both height and width.
🔧 Debug
advanced2:00remaining
Identifying error in pooling layer usage
What error will occur when running the following TensorFlow code snippet?
TensorFlow
import tensorflow as tf input_tensor = tf.random.uniform(shape=(1, 28, 28, 3)) max_pool = tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=3) output_tensor = max_pool(input_tensor) print(output_tensor.shape)
Attempts:
2 left
💡 Hint
Check if strides can be an integer and how output shape is computed.
✗ Incorrect
Strides can be an integer or tuple. With stride 3 and pool size 2, output size = floor((28 - 2)/3) + 1 = 9. No error occurs.
❓ Model Choice
expert2:30remaining
Choosing pooling layer for noise robustness
You want to build a convolutional neural network that is robust to small noisy activations in feature maps. Which pooling layer choice is best to reduce the effect of noise?
Attempts:
2 left
💡 Hint
Consider how each pooling method treats small noisy values.
✗ Incorrect
AveragePooling reduces noise by averaging values, smoothing out small noisy activations. MaxPooling can amplify noise by selecting the highest value.