A Flatten layer takes a multi-dimensional input (like an image) and turns it into a single long list of numbers. This helps connect image data to layers that expect flat input.
Click to reveal answer
beginner
What is the purpose of a Dense layer in a neural network?
A Dense layer connects every input to every output neuron with weights. It helps the network learn patterns by combining inputs in different ways.
Click to reveal answer
beginner
Why do we often use a Flatten layer before a Dense layer?
Because Dense layers expect flat input, we use Flatten to convert multi-dimensional data (like images) into a flat list so the Dense layer can process it.
Click to reveal answer
beginner
In TensorFlow, how do you add a Flatten layer to a model?
You add it like this: tf.keras.layers.Flatten(). It will reshape the input to a flat vector automatically.
Click to reveal answer
intermediate
What activation function is commonly used in Dense layers for classification?
The 'softmax' activation is often used in the last Dense layer for multi-class classification to output probabilities.
Click to reveal answer
What shape does a Flatten layer output if the input shape is (28, 28, 1)?
A(28, 28, 1)
B(28, 28)
C(784,)
D(1, 784)
✗ Incorrect
Flatten converts the input to a single dimension by multiplying all dimensions: 28*28*1 = 784.
Which layer type connects every input neuron to every output neuron?
ADense
BPooling
CConvolutional
DFlatten
✗ Incorrect
Dense layers have full connections between inputs and outputs.
Why is Flatten needed before Dense layers when working with images?
ATo convert multi-dimensional data into a flat vector
BTo reduce the number of neurons
CTo increase image size
DTo apply activation functions
✗ Incorrect
Dense layers require flat input, so Flatten reshapes the image data.
Which activation function is commonly used in the last Dense layer for multi-class classification?
ASigmoid
BSoftmax
CReLU
DTanh
✗ Incorrect
Softmax outputs probabilities for each class, summing to 1.
In TensorFlow, how do you add a Dense layer with 10 neurons and ReLU activation?
Atf.keras.layers.Dense(activation='relu')
Btf.keras.layers.Flatten(10, activation='relu')
Ctf.keras.layers.Dense(10)
Dtf.keras.layers.Dense(10, activation='relu')
✗ Incorrect
You specify the number of neurons and activation function inside Dense.
Explain in your own words why we use a Flatten layer before Dense layers in image classification models.
Think about how images are shaped and what Dense layers expect.
You got /3 concepts.
Describe the role of Dense layers in a neural network and how they learn from data.
Consider how neurons communicate and learn connections.
You got /3 concepts.
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
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.
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.
Final Answer:
To convert multi-dimensional input into a one-dimensional vector -> Option A
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
Step 1: Check the order of layers
Flatten must come before Dense because Dense needs flat input.
Step 2: Verify syntax for layers
Flatten() takes no arguments; Dense(10) creates 10 neurons.
Final Answer:
model.add(tf.keras.layers.Flatten()); model.add(tf.keras.layers.Dense(10)) -> Option C
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)?
Flatten converts input to (None, 2352), where None is batch size.
Final Answer:
(None, 2352) -> Option B
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
Step 1: Analyze layer order
The first Dense layer expects flat input but input_shape is 3D (28,28,1). Flatten should come first.
Step 2: Check Flatten placement
Flatten must convert 3D input to 1D before Dense layers.
Final Answer:
Flatten layer should come before the first Dense layer -> Option A
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
Step 1: Check input shape and Flatten usage
Input is (32,32,3), so Flatten must come first to convert to 1D vector.
Step 2: Verify Dense layers order
Dense(64) with relu comes after Flatten, then Dense(5) with softmax for 5 classes.
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.
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
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 unknownstrongwhile earning +1 Grip toward your certificate.