Bird
Raised Fist0
TensorFlowml~20 mins

Sequential model API in TensorFlow - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Sequential Model Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of a simple Sequential model prediction
What is the output shape of the prediction from this Sequential model when given input shape (None, 10)?
TensorFlow
import tensorflow as tf
model = tf.keras.Sequential([
    tf.keras.layers.Dense(5, activation='relu', input_shape=(10,)),
    tf.keras.layers.Dense(3, activation='softmax')
])
import numpy as np
sample_input = np.random.random((1, 10))
prediction = model(sample_input)
prediction_shape = prediction.shape
print(prediction_shape)
A(1, 3)
B(10, 3)
C(1, 5)
D(3,)
Attempts:
2 left
💡 Hint
Remember the output shape depends on the last layer's units and batch size.
Model Choice
intermediate
2:00remaining
Choosing the correct Sequential model for binary classification
Which Sequential model architecture is best suited for a binary classification problem with input features of size 20?
ASequential([Dense(1, activation='relu', input_shape=(20,)), Dense(1, activation='sigmoid')])
BSequential([Dense(10, activation='relu', input_shape=(20,)), Dense(3, activation='softmax')])
CSequential([Dense(10, activation='relu', input_shape=(20,)), Dense(1, activation='sigmoid')])
DSequential([Dense(20, activation='relu'), Dense(1, activation='softmax')])
Attempts:
2 left
💡 Hint
Binary classification needs one output neuron with sigmoid activation.
Hyperparameter
advanced
2:00remaining
Effect of changing batch size in Sequential model training
What is the most likely effect of increasing the batch size from 16 to 256 during training of a Sequential model?
ATraining will use less memory and always converge slower.
BTraining will use less memory and produce more accurate models.
CTraining will use more memory and always overfit the data.
DTraining will use more memory and may converge faster but with less noisy gradient updates.
Attempts:
2 left
💡 Hint
Think about how batch size affects memory and gradient noise.
Metrics
advanced
2:00remaining
Correct metric for multi-class classification with Sequential model
Which metric should be used to evaluate a Sequential model trained for 4-class classification?
Amean_absolute_error
Baccuracy
Cmean_squared_error
Dbinary_crossentropy
Attempts:
2 left
💡 Hint
Think about the type of problem and metric suitability.
🔧 Debug
expert
2:00remaining
Identify the error in this Sequential model code
What error will this code raise when run?
TensorFlow
import tensorflow as tf
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(10, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy')
import numpy as np
x = np.random.random((5, 20))
y = np.random.randint(0, 2, size=(5, 1))
model.fit(x, y, epochs=1)
ANo error, code runs successfully
BTypeError: optimizer argument must be a string
CRuntimeError: model.fit requires validation data
DValueError: Input shape is not defined for the first layer
Attempts:
2 left
💡 Hint
Keras Sequential models can infer input shape from training data.

Practice

(1/5)
1. What is the main purpose of the Sequential model API in TensorFlow?
easy
A. To visualize the training process of a model
B. To create complex models with multiple inputs and outputs
C. To perform data preprocessing before training
D. To build a model by stacking layers in a linear order

Solution

  1. Step 1: Understand the Sequential API purpose

    The Sequential API is designed to build models by stacking layers one after another in a simple linear fashion.
  2. Step 2: Compare options with the API's function

    Options B, C, and D describe other functionalities not related to the Sequential API's main purpose.
  3. Final Answer:

    To build a model by stacking layers in a linear order -> Option D
  4. Quick Check:

    Sequential API = linear stacking of layers [OK]
Hint: Sequential means layers stacked one after another [OK]
Common Mistakes:
  • Confusing Sequential with Functional API for complex models
  • Thinking Sequential handles data preprocessing
  • Assuming Sequential is for visualization
2. Which of the following is the correct way to create a Sequential model with one dense layer of 10 units in TensorFlow?
easy
A. model = Sequential(Dense(10))
B. model = Sequential([Dense(10)])
C. model = Sequential().add(Dense(10))
D. model = Sequential.add(Dense(10))

Solution

  1. Step 1: Recall correct Sequential model creation syntax

    The Sequential model can be created by passing a list of layers inside the constructor, e.g., Sequential([Dense(10)]).
  2. Step 2: Check each option's syntax validity

    model = Sequential([Dense(10)]) uses the correct list syntax. model = Sequential(Dense(10)) misses the list brackets. model = Sequential().add(Dense(10)) is valid usage but requires assignment to a variable to keep the model reference. model = Sequential.add(Dense(10)) incorrectly calls add() on the class, not an instance.
  3. Final Answer:

    model = Sequential([Dense(10)]) -> Option B
  4. Quick Check:

    Sequential needs list of layers in constructor [OK]
Hint: Pass layers as a list inside Sequential() [OK]
Common Mistakes:
  • Omitting brackets around layers list
  • Calling add() on class instead of instance
  • Chaining add() without assignment
3. What will be the output shape of the model after running this code?
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential([
    Dense(5, input_shape=(10,)),
    Dense(3)
])
print(model.output_shape)
medium
A. (None, 5)
B. (10, 3)
C. (None, 3)
D. (5, 3)

Solution

  1. Step 1: Understand input and output shapes in Sequential

    The input shape is (10,), so the first Dense layer outputs (None, 5). The second Dense layer outputs (None, 3) because it has 3 units.
  2. Step 2: Identify final output shape

    The model's output shape is the output of the last layer, which is (None, 3). None means batch size is flexible.
  3. Final Answer:

    (None, 3) -> Option C
  4. Quick Check:

    Last Dense units = output shape [OK]
Hint: Output shape matches last layer units with batch None [OK]
Common Mistakes:
  • Confusing input shape with output shape
  • Using batch size instead of None
  • Mixing layer output shapes
4. Identify the error in this Sequential model code:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential()
model.add(Dense(10, input_shape=(5,)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
model.fit(x_train, y_train, epochs=5)
medium
A. x_train and y_train are not defined
B. Sequential model cannot use add() method
C. Loss function 'mse' is invalid
D. Missing import for optimizer

Solution

  1. Step 1: Check code for missing definitions

    The code uses x_train and y_train in model.fit() but they are not defined anywhere, causing a runtime error.
  2. Step 2: Verify other parts

    Optimizer 'adam' and loss 'mse' are valid strings. add() method is valid for Sequential instances. Imports are sufficient.
  3. Final Answer:

    x_train and y_train are not defined -> Option A
  4. Quick Check:

    Undefined training data causes error [OK]
Hint: Check if training data variables are defined before fit() [OK]
Common Mistakes:
  • Assuming loss 'mse' is invalid
  • Thinking add() method is not allowed
  • Ignoring missing data variables
5. You want to build a Sequential model for a classification task with 3 classes. Which of the following is the best final layer and loss combination?
hard
A. Dense(3, activation='softmax') with loss='categorical_crossentropy'
B. Dense(1, activation='sigmoid') with loss='mean_squared_error'
C. Dense(3, activation='relu') with loss='binary_crossentropy'
D. Dense(3) with loss='sparse_categorical_crossentropy'

Solution

  1. Step 1: Understand classification output requirements

    For 3 classes, the final layer should have 3 units with softmax activation to output class probabilities.
  2. Step 2: Match appropriate loss function

    For one-hot encoded labels, 'categorical_crossentropy' is the correct loss function to use with softmax output.
  3. Final Answer:

    Dense(3, activation='softmax') with loss='categorical_crossentropy' -> Option A
  4. Quick Check:

    Softmax + categorical_crossentropy = multi-class classification [OK]
Hint: Use softmax + categorical_crossentropy for multi-class tasks [OK]
Common Mistakes:
  • Using sigmoid for multi-class output
  • Using mean squared error for classification
  • Missing activation in final layer