Challenge - 5 Problems
Pooling Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediateOutput 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
intermediateDifference 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
advancedEffect 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
advancedIdentifying 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
expertChoosing 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.
