Bird
Raised Fist0
TensorFlowml~10 mins

Padding and stride in TensorFlow - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a 2D convolutional layer with stride 1.

TensorFlow
conv_layer = tf.keras.layers.Conv2D(filters=32, kernel_size=3, strides=[1], padding='same')
Drag options to blanks, or click blank then click option'
A1
B2
C3
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using stride 0 causes an error because stride must be positive.
Using stride 2 changes the output size and is not what the question asks.
2fill in blank
medium

Complete the code to apply 'valid' padding in a Conv2D layer.

TensorFlow
conv_layer = tf.keras.layers.Conv2D(filters=64, kernel_size=5, strides=1, padding=[1])
Drag options to blanks, or click blank then click option'
A'same'
B'zero'
C'valid'
D'full'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'same' padding keeps output size but is not what the question asks.
Using 'full' or 'zero' are not valid padding options in TensorFlow Conv2D.
3fill in blank
hard

Fix the error in the stride parameter to correctly create a Conv2D layer with stride 2.

TensorFlow
conv_layer = tf.keras.layers.Conv2D(filters=16, kernel_size=3, strides=[1], padding='same')
Drag options to blanks, or click blank then click option'
A2
B(2, 2)
C[2, 2]
D'2'
Attempts:
3 left
💡 Hint
Common Mistakes
Using a string '2' causes a type error.
Using [2, 2] also works but tuple (2, 2) is the expected answer.
4fill in blank
hard

Fill both blanks to create a Conv2D layer with kernel size 3 and stride 2.

TensorFlow
conv_layer = tf.keras.layers.Conv2D(filters=10, kernel_size=[1], strides=[2], padding='valid')
Drag options to blanks, or click blank then click option'
A3
B(2, 2)
C2
D(3, 3)
Attempts:
3 left
💡 Hint
Common Mistakes
Using stride as 2 (int) works but tuple is preferred for clarity.
Using kernel size as (3, 3) is valid but question expects int 3.
5fill in blank
hard

Fill all three blanks to create a Conv2D layer with kernel size (5,5), stride 1, and 'same' padding.

TensorFlow
conv_layer = tf.keras.layers.Conv2D(filters=20, kernel_size=[1], strides=[2], padding=[3])
Drag options to blanks, or click blank then click option'
A(5, 5)
B1
C'same'
D'valid'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'valid' padding shrinks output size.
Using stride other than 1 changes output size.

Practice

(1/5)
1. What does padding do in a convolutional layer in TensorFlow?
easy
A. Changes the filter size
B. Adjusts the learning rate
C. Controls the number of filters
D. Adds extra space around the input edges

Solution

  1. Step 1: Understand padding role

    Padding adds pixels around the input image edges to control output size and preserve edge information.
  2. Step 2: Compare options

    Only Adds extra space around the input edges correctly describes padding as adding space around input edges.
  3. Final Answer:

    Adds extra space around the input edges -> Option D
  4. Quick Check:

    Padding = Adds space around input edges [OK]
Hint: Padding adds border space around input images [OK]
Common Mistakes:
  • Confusing padding with stride
  • Thinking padding changes filter size
  • Assuming padding controls learning rate
2. Which of the following is the correct way to specify stride of 2 in TensorFlow's Conv2D layer?
easy
A. strides=(2)
B. stride=(2)
C. strides=(2, 2)
D. stride=2

Solution

  1. Step 1: Recall Conv2D stride syntax

    TensorFlow Conv2D expects strides as a tuple for height and width, e.g., (2, 2).
  2. Step 2: Check options

    Only strides=(2, 2) uses the correct parameter name and tuple format.
  3. Final Answer:

    strides=(2, 2) -> Option C
  4. Quick Check:

    Stride syntax = strides=(2, 2) [OK]
Hint: Use tuple for strides in Conv2D: strides=(height, width) [OK]
Common Mistakes:
  • Using 'stride' instead of 'strides'
  • Passing a single integer instead of a tuple
  • Omitting parentheses around stride values
3. Given an input of size 28x28, a filter size of 3x3, stride of 2, and 'valid' padding, what is the output size after Conv2D?
medium
A. 13x13
B. 14x14
C. 15x15
D. 12x12

Solution

  1. Step 1: Calculate output size formula for 'valid' padding

    Output size = floor((Input - Filter) / Stride) + 1 = floor((28 - 3) / 2) + 1 = floor(25 / 2) + 1 = 12 + 1 = 13.
  2. Step 2: Confirm output dimensions

    Output height and width are both 13, so output size is 13x13.
  3. Final Answer:

    13x13 -> Option A
  4. Quick Check:

    Output size = 13x13 with valid padding [OK]
Hint: Use formula: floor((input-filter)/stride)+1 for 'valid' padding [OK]
Common Mistakes:
  • Using 'same' padding formula instead
  • Forgetting to floor the division
  • Adding padding when 'valid' means no padding
4. You wrote this code but get an error:
tf.keras.layers.Conv2D(filters=32, kernel_size=3, strides=2, padding='samee')

What is the error?
medium
A. Strides must be a tuple, not integer
B. Invalid padding value 'samee'
C. Kernel size must be a tuple
D. Filters must be a list

Solution

  1. Step 1: Check padding parameter

    Padding accepts only 'valid' or 'same'. 'samee' is a typo and invalid.
  2. Step 2: Verify other parameters

    Strides can be integer or tuple, kernel_size can be int or tuple, filters is integer. So no error there.
  3. Final Answer:

    Invalid padding value 'samee' -> Option B
  4. Quick Check:

    Padding typo causes error [OK]
Hint: Check spelling of padding values: 'same' or 'valid' only [OK]
Common Mistakes:
  • Misspelling padding values
  • Assuming strides must be tuple always
  • Confusing kernel_size type requirements
5. You want to keep the output size same as input (28x28) after Conv2D with filter size 5x5. Which padding and stride should you use?
hard
A. padding='same', strides=(1, 1)
B. padding='valid', strides=(1, 1)
C. padding='same', strides=(2, 2)
D. padding='valid', strides=(2, 2)

Solution

  1. Step 1: Understand output size preservation

    To keep output size same as input, use 'same' padding and stride 1 so filter slides over every pixel with padding added.
  2. Step 2: Check options

    Only padding='same', strides=(1, 1) uses 'same' padding and stride (1,1), which preserves size.
  3. Final Answer:

    padding='same', strides=(1, 1) -> Option A
  4. Quick Check:

    Same padding + stride 1 keeps size [OK]
Hint: Use 'same' padding and stride 1 to keep output size [OK]
Common Mistakes:
  • Using 'valid' padding which shrinks output
  • Using stride > 1 which reduces output size
  • Confusing filter size effect on output
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