Bird
Raised Fist0
TensorFlowml~10 mins

Flatten and Dense layers 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 a Flatten layer to the model.

TensorFlow
model = tf.keras.Sequential([
    [1](input_shape=(28, 28, 1))
])
Drag options to blanks, or click blank then click option'
AFlatten
BDense
CConv2D
DDropout
Attempts:
3 left
💡 Hint
Common Mistakes
Using Dense layer directly without flattening causes shape errors.
Using Conv2D layer without specifying filters and kernel size.
2fill in blank
medium

Complete the code to add a Dense layer with 128 units and ReLU activation.

TensorFlow
model.add([1](128, activation='relu'))
Drag options to blanks, or click blank then click option'
AFlatten
BMaxPooling2D
CConv2D
DDense
Attempts:
3 left
💡 Hint
Common Mistakes
Using Flatten instead of Dense for fully connected layers.
Forgetting to specify activation function.
3fill in blank
hard

Fix the error in the code to correctly add a Dense output layer with 10 units and softmax activation.

TensorFlow
model.add(Dense([1], activation='softmax'))
Drag options to blanks, or click blank then click option'
A1
B10
CNone
D'10'
Attempts:
3 left
💡 Hint
Common Mistakes
Passing number of units as a string causes errors.
Using 1 unit instead of 10 for multi-class classification.
4fill in blank
hard

Fill both blanks to create a model with a Flatten layer followed by a Dense layer with 64 units.

TensorFlow
model = tf.keras.Sequential([
    [1](input_shape=(32, 32, 3)),
    [2](64, activation='relu')
])
Drag options to blanks, or click blank then click option'
AFlatten
BDense
CConv2D
DDropout
Attempts:
3 left
💡 Hint
Common Mistakes
Using Conv2D instead of Flatten for first layer.
Missing activation in Dense layer.
5fill in blank
hard

Fill all three blanks to build a model with Flatten, Dense 128 ReLU, and Dense 10 softmax layers.

TensorFlow
model = tf.keras.Sequential([
    [1](input_shape=(28, 28, 1)),
    [2](128, activation='relu'),
    [3](10, activation='softmax')
])
Drag options to blanks, or click blank then click option'
AFlatten
BDense
CConv2D
DDropout
Attempts:
3 left
💡 Hint
Common Mistakes
Using Conv2D instead of Flatten for input layer.
Using Dropout instead of Dense for hidden layers.
Wrong number of units in output layer.

Practice

(1/5)
1. What is the main purpose of a Flatten layer in a TensorFlow model?
easy
A. To convert multi-dimensional input into a one-dimensional vector
B. To reduce the number of neurons in the model
C. To add non-linearity to the model
D. To perform convolution operations on the input

Solution

  1. Step 1: Understand the role of Flatten layer

    The Flatten layer takes input with multiple dimensions (like images) and converts it into a single long list of numbers.
  2. Step 2: Connect Flatten to Dense layers

    This one-dimensional vector is needed because Dense layers expect flat input to connect every input to neurons.
  3. Final Answer:

    To convert multi-dimensional input into a one-dimensional vector -> Option A
  4. Quick Check:

    Flatten = flatten input shape [OK]
Hint: Flatten makes input flat for Dense layers [OK]
Common Mistakes:
  • Thinking Flatten reduces neurons
  • Confusing Flatten with convolution
  • Assuming Flatten adds activation
2. Which of the following is the correct way to add a Flatten layer followed by a Dense layer with 10 neurons in TensorFlow?
easy
A. model.add(tf.keras.layers.Dense(10)); model.add(tf.keras.layers.Flatten())
B. model.add(tf.keras.layers.Flatten(10)); model.add(tf.keras.layers.Dense())
C. model.add(tf.keras.layers.Flatten()); model.add(tf.keras.layers.Dense(10))
D. model.add(tf.keras.layers.Dense()); model.add(tf.keras.layers.Flatten(10))

Solution

  1. Step 1: Check the order of layers

    Flatten must come before Dense because Dense needs flat input.
  2. Step 2: Verify syntax for layers

    Flatten() takes no arguments; Dense(10) creates 10 neurons.
  3. Final Answer:

    model.add(tf.keras.layers.Flatten()); model.add(tf.keras.layers.Dense(10)) -> Option C
  4. Quick Check:

    Flatten first, then Dense with units [OK]
Hint: Flatten first, then Dense with units [OK]
Common Mistakes:
  • Placing Dense before Flatten
  • Passing arguments to Flatten
  • Omitting units in Dense
3. What will be the output shape after applying a Flatten layer to an input tensor of shape (None, 28, 28, 3)?
medium
A. (None, 28, 28, 3)
B. (None, 2352)
C. (None, 28)
D. (None, 784)

Solution

  1. Step 1: Calculate total elements per sample

    Input shape is (28, 28, 3). Multiply 28 * 28 * 3 = 2352.
  2. Step 2: Understand Flatten output shape

    Flatten converts input to (None, 2352), where None is batch size.
  3. Final Answer:

    (None, 2352) -> Option B
  4. Quick Check:

    28*28*3 = 2352 [OK]
Hint: Multiply all dimensions except batch [OK]
Common Mistakes:
  • Confusing batch size with feature size
  • Using 28*28 instead of 28*28*3
  • Assuming Flatten changes batch size
4. Identify the error in this TensorFlow model snippet:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(64, activation='relu', input_shape=(28,28,1)))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(10, activation='softmax'))
medium
A. Flatten layer should come before the first Dense layer
B. Dense layer cannot have input_shape with 3D data
C. Activation function 'relu' is not allowed in Dense layers
D. The model is correct and will run without errors

Solution

  1. Step 1: Analyze layer order

    The first Dense layer expects flat input but input_shape is 3D (28,28,1). Flatten should come first.
  2. Step 2: Check Flatten placement

    Flatten must convert 3D input to 1D before Dense layers.
  3. Final Answer:

    Flatten layer should come before the first Dense layer -> Option A
  4. Quick Check:

    Flatten before Dense with multi-dim input [OK]
Hint: Flatten before Dense if input is multi-dimensional [OK]
Common Mistakes:
  • Placing Dense before Flatten with image input
  • Thinking activation relu is invalid
  • Ignoring input_shape format
5. You want to build a simple image classifier using TensorFlow for 32x32 RGB images. Which model architecture correctly uses Flatten and Dense layers to prepare the data for classification into 5 classes?
hard
A.
model = tf.keras.Sequential([
  tf.keras.layers.Dense(5, activation='softmax', input_shape=(32,32,3)),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(64, activation='relu')
])
B.
model = tf.keras.Sequential([
  tf.keras.layers.Dense(64, activation='relu', input_shape=(32,32,3)),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(5, activation='softmax')
])
C.
model = tf.keras.Sequential([
  tf.keras.layers.Flatten(input_shape=(32,32,3)),
  tf.keras.layers.Dense(5, activation='softmax'),
  tf.keras.layers.Dense(64, activation='relu')
])
D.
model = tf.keras.Sequential([
  tf.keras.layers.Flatten(input_shape=(32,32,3)),
  tf.keras.layers.Dense(64, activation='relu'),
  tf.keras.layers.Dense(5, activation='softmax')
])

Solution

  1. Step 1: Check input shape and Flatten usage

    Input is (32,32,3), so Flatten must come first to convert to 1D vector.
  2. Step 2: Verify Dense layers order

    Dense(64) with relu comes after Flatten, then Dense(5) with softmax for 5 classes.
  3. Step 3: Identify incorrect options

    Some architectures place Dense before Flatten, which is wrong.
    model = tf.keras.Sequential([
      tf.keras.layers.Flatten(input_shape=(32,32,3)),
      tf.keras.layers.Dense(5, activation='softmax'),
      tf.keras.layers.Dense(64, activation='relu')
    ])
    places output Dense before hidden Dense, which is incorrect.
  4. Final Answer:

    model = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(32,32,3)), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(5, activation='softmax') ]) -> Option D
  5. Quick Check:

    Flatten first, hidden Dense, then output Dense [OK]
Hint: Flatten first, then hidden Dense, then output Dense [OK]
Common Mistakes:
  • Putting Dense before Flatten with image input
  • Placing output layer before hidden layers
  • Wrong input_shape placement
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