Bird
Raised Fist0
TensorFlowml~10 mins

Batch normalization 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 add batch normalization after a dense layer in TensorFlow.

TensorFlow
model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.[1](),
    tf.keras.layers.Dense(10, activation='softmax')
])
Drag options to blanks, or click blank then click option'
ABatchNormalization
BDropout
CFlatten
DConv2D
Attempts:
3 left
💡 Hint
Common Mistakes
Using Dropout instead of BatchNormalization.
Forgetting to add batch normalization after the dense layer.
2fill in blank
medium

Complete the code to create a batch normalization layer with momentum 0.9.

TensorFlow
bn_layer = tf.keras.layers.BatchNormalization(momentum=[1])
Drag options to blanks, or click blank then click option'
A0.5
B0.1
C1.0
D0.9
Attempts:
3 left
💡 Hint
Common Mistakes
Setting momentum to 1.0 disables moving average updates.
Using too low momentum like 0.1 can make training unstable.
3fill in blank
hard

Fix the error in the batch normalization usage by completing the code.

TensorFlow
x = tf.keras.layers.Dense(128)(inputs)
x = tf.keras.layers.BatchNormalization[1](x)
Drag options to blanks, or click blank then click option'
A.apply
B()
C.call
D.fit
Attempts:
3 left
💡 Hint
Common Mistakes
Using .call or .apply instead of calling the layer as a function.
Forgetting parentheses causes a syntax error.
4fill in blank
hard

Fill both blanks to create a batch normalization layer that normalizes over the last axis and uses epsilon 1e-5.

TensorFlow
bn = tf.keras.layers.BatchNormalization(axis=[1], epsilon=[2])
Drag options to blanks, or click blank then click option'
A-1
B0
C1e-5
D1e-3
Attempts:
3 left
💡 Hint
Common Mistakes
Using axis 0 normalizes over batch dimension, which is incorrect.
Using too large epsilon like 1e-3 can reduce normalization effectiveness.
5fill in blank
hard

Fill all three blanks to create a model with batch normalization after each dense layer and dropout after the first batch norm.

TensorFlow
model = tf.keras.Sequential([
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.[1](),
    tf.keras.layers.[2](0.5),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.[3](),
    tf.keras.layers.Dense(10, activation='softmax')
])
Drag options to blanks, or click blank then click option'
ABatchNormalization
BDropout
DFlatten
Attempts:
3 left
💡 Hint
Common Mistakes
Placing dropout before batch normalization.
Forgetting to add batch normalization after the second dense layer.

Practice

(1/5)
1. What is the main purpose of BatchNormalization in a TensorFlow model?
easy
A. To add noise to the inputs for regularization
B. To normalize the inputs of a layer to speed up and stabilize training
C. To increase the learning rate automatically during training
D. To reduce the size of the model by removing neurons

Solution

  1. Step 1: Understand batch normalization role

    Batch normalization normalizes inputs to a layer to keep data distribution stable during training.
  2. Step 2: Identify its effect on training

    This normalization speeds up training and helps avoid issues like vanishing or exploding gradients.
  3. Final Answer:

    To normalize the inputs of a layer to speed up and stabilize training -> Option B
  4. Quick Check:

    BatchNormalization normalizes inputs [OK]
Hint: BatchNormalization normalizes inputs to stabilize training [OK]
Common Mistakes:
  • Thinking it reduces model size
  • Confusing it with learning rate adjustment
  • Assuming it adds noise for regularization
2. Which of the following is the correct way to add a batch normalization layer after a dense layer in TensorFlow?
easy
A. model.add(tf.keras.layers.BatchNormalization(64)) before model.add(tf.keras.layers.Dense())
B. model.add(tf.keras.layers.Dense(64, batch_normalization=True))
C. model.add(tf.keras.layers.BatchNormalization()) after model.add(tf.keras.layers.Dense(64))
D. model.add(tf.keras.layers.Dense(64)) with batch_norm=True parameter

Solution

  1. Step 1: Recall batch normalization usage

    BatchNormalization is a separate layer added after Dense, not a parameter inside Dense.
  2. Step 2: Check syntax correctness

    model.add(tf.keras.layers.BatchNormalization()) after model.add(tf.keras.layers.Dense(64)) correctly adds BatchNormalization after Dense with no extra parameters.
  3. Final Answer:

    model.add(tf.keras.layers.BatchNormalization()) after model.add(tf.keras.layers.Dense(64)) -> Option C
  4. Quick Check:

    BatchNormalization is a separate layer added after Dense [OK]
Hint: BatchNormalization is a separate layer, not a Dense parameter [OK]
Common Mistakes:
  • Trying to pass batch_normalization as Dense parameter
  • Adding BatchNormalization before Dense layer
  • Passing units to BatchNormalization layer
3. What will be the output shape of the following TensorFlow model snippet?
model = tf.keras.Sequential([
  tf.keras.layers.Dense(10, input_shape=(20,)),
  tf.keras.layers.BatchNormalization(),
  tf.keras.layers.Activation('relu')
])
output_shape = model.output_shape
medium
A. (None, 10)
B. (None, 20)
C. (10, None)
D. (20, 10)

Solution

  1. Step 1: Analyze Dense layer output

    Dense(10) with input shape (20,) outputs shape (None, 10), where None is batch size.
  2. Step 2: Check BatchNormalization and Activation effect

    BatchNormalization and Activation do not change shape, so output remains (None, 10).
  3. Final Answer:

    (None, 10) -> Option A
  4. Quick Check:

    Dense output shape = (None, 10) [OK]
Hint: BatchNormalization keeps shape same as previous layer output [OK]
Common Mistakes:
  • Confusing input shape with output shape
  • Assuming BatchNormalization changes output shape
  • Mixing batch size dimension with feature dimension
4. Identify the error in this TensorFlow code snippet using batch normalization:
model = tf.keras.Sequential()
model.add(tf.keras.layers.BatchNormalization(input_shape=(32,)))
model.add(tf.keras.layers.Dense(64))
model.add(tf.keras.layers.Activation('relu'))
medium
A. BatchNormalization should not be the first layer with input_shape
B. Activation should be before BatchNormalization
C. Dense layer must come before BatchNormalization
D. BatchNormalization layer should come after Dense layer, not before

Solution

  1. Step 1: Check layer order logic

    BatchNormalization normalizes outputs of previous layer, so it should come after Dense, not before.
  2. Step 2: Validate input shape usage

    Input shape should be specified in first layer that processes input, usually Dense or Conv layer.
  3. Final Answer:

    BatchNormalization layer should come after Dense layer, not before -> Option D
  4. Quick Check:

    BatchNormalization follows Dense layer [OK]
Hint: BatchNormalization normalizes outputs, so place it after Dense [OK]
Common Mistakes:
  • Placing BatchNormalization as first layer with input_shape
  • Putting Activation before BatchNormalization
  • Assuming BatchNormalization changes input shape
5. You want to add batch normalization to a convolutional neural network in TensorFlow. Which of the following is the best practice?
hard
A. Add BatchNormalization immediately after each convolutional layer and before activation
B. Add BatchNormalization only after the last convolutional layer
C. Add BatchNormalization before convolutional layers
D. Add BatchNormalization only after activation layers

Solution

  1. Step 1: Understand batch normalization placement

    Best practice is to normalize outputs of convolutional layers before applying activation.
  2. Step 2: Evaluate options

    Adding BatchNormalization after each conv layer and before activation stabilizes training and improves performance.
  3. Final Answer:

    Add BatchNormalization immediately after each convolutional layer and before activation -> Option A
  4. Quick Check:

    BatchNormalization follows conv layer, precedes activation [OK]
Hint: Place BatchNormalization after conv layer, before activation [OK]
Common Mistakes:
  • Adding BatchNormalization only once at end
  • Placing BatchNormalization before conv layers
  • Adding BatchNormalization after activation
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