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
Recall & Review
beginner
What is the purpose of making predictions with a trained machine learning model?
Predictions are used to apply the learned patterns from training data to new, unseen data. This helps us make decisions or understand new inputs based on what the model has learned.
Click to reveal answer
beginner
What does the 'evaluate' method in TensorFlow models do?
The 'evaluate' method calculates how well the model performs on test data by computing metrics like loss and accuracy. It helps us understand if the model generalizes well to new data.
Click to reveal answer
beginner
Why is it important to use separate data for training and evaluation?
Using separate data prevents the model from just memorizing the training examples. It ensures the model can make good predictions on new data, showing it has truly learned patterns.
Click to reveal answer
beginner
In TensorFlow, what does the 'predict' method return?
The 'predict' method returns the model's output for the input data, such as class probabilities or continuous values, depending on the task.
Click to reveal answer
beginner
What is 'loss' in model evaluation?
Loss is a number that shows how far the model's predictions are from the true answers. Lower loss means better predictions.
Click to reveal answer
What does the 'evaluate' method in TensorFlow return?
ATraining data samples
BLoss and metrics values on test data
CModel architecture summary
DPredicted labels for input data
✗ Incorrect
The 'evaluate' method returns loss and metric values computed on the test data to assess model performance.
Why should you not use training data to evaluate your model?
ABecause evaluation requires labeled data
BBecause training data is too small
CBecause training data is always noisy
DBecause it can cause the model to memorize and not generalize
✗ Incorrect
Using training data for evaluation can cause overfitting, where the model memorizes training examples and performs poorly on new data.
What does the 'predict' method output in a classification task?
AClass probabilities or predicted classes
BLoss value
CTraining accuracy
DModel weights
✗ Incorrect
In classification, 'predict' outputs probabilities or predicted class labels for the input data.
Which metric is commonly used to measure model error during evaluation?
ALoss
BLearning rate
CEpoch count
DBatch size
✗ Incorrect
Loss measures how far predictions are from true values and is used to evaluate model error.
What is the main goal of model evaluation?
ATo change model architecture
BTo increase training speed
CTo check model performance on new data
DTo generate training data
✗ Incorrect
Model evaluation checks how well the model performs on data it has not seen before.
Explain how you would use a TensorFlow model to make predictions and then evaluate its performance on new data.
Think about the steps after training: first get predictions, then check how good they are.
You got /4 concepts.
Describe why separating data into training and evaluation sets is important in machine learning.
Consider what happens if the model sees the same data for both training and testing.
You got /3 concepts.
Practice
(1/5)
1. What does the model.predict() function do in TensorFlow?
easy
A. It saves the model to a file
B. It trains the model on the data
C. It deletes the model from memory
D. It gives the model's guesses on new data
Solution
Step 1: Understand the purpose of model.predict()
This function is used to get the model's output predictions for new input data after training.
Step 2: Differentiate from other functions
Training uses model.fit(), saving uses model.save(), and deleting is manual memory management, none of which are predict().
Final Answer:
It gives the model's guesses on new data -> Option D
Quick Check:
model.predict() = model guesses [OK]
Hint: Predict means guess output for new inputs [OK]
Common Mistakes:
Confusing predict() with fit() for training
Thinking predict() saves the model
Assuming predict() deletes the model
2. Which of the following is the correct way to evaluate a TensorFlow model on test data stored in X_test and y_test?
easy
A. model.score(X_test, y_test)
B. model.evaluate(X_test, y_test)
C. model.fit(X_test, y_test)
D. model.predict(X_test, y_test)
Solution
Step 1: Identify the evaluation function
TensorFlow uses model.evaluate() to measure performance on test data.
Step 2: Check other options
model.predict() makes predictions, model.fit() trains, and model.score() is not a TensorFlow method.
Final Answer:
model.evaluate(X_test, y_test) -> Option B
Quick Check:
Evaluate = measure performance [OK]
Hint: Use evaluate() to check model accuracy on test data [OK]
Common Mistakes:
Using predict() instead of evaluate() for metrics
Trying to train with evaluate()
Using non-existent model.score() method
3. What will be the output of the following code snippet?
import tensorflow as tf
import numpy as np
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mse')
X = np.array([1, 2, 3, 4], dtype=float)
y = np.array([2, 4, 6, 8], dtype=float)
model.fit(X, y, epochs=10, verbose=0)
predictions = model.predict(np.array([5.0]))
print(predictions)
medium
A. A numpy array close to [[1.0]]
B. A numpy array close to [[5.0]]
C. A numpy array close to [[10.0]]
D. An error because input shape is wrong
Solution
Step 1: Understand the model and data
The model is a simple linear layer trained to learn y = 2*x approximately.
Step 2: Predict for input 5.0
After training, the model should predict close to 2*5 = 10, so output is near [[10.0]].
Final Answer:
A numpy array close to [[10.0]] -> Option C
Quick Check:
Prediction for 5 ≈ 10 [OK]
Hint: Model learns y=2x, predict(5) ≈ 10 [OK]
Common Mistakes:
Expecting exact 10 instead of approximate
Confusing input shape causing error
Thinking prediction returns scalar, not array
4. You run model.evaluate(X_test, y_test) but get a ValueError about mismatched shapes. What is the most likely cause?
medium
A. The shapes of X_test and y_test do not match the model's expected input and output shapes
B. The model was not compiled before evaluation
C. The model.predict() function was called instead of evaluate()
D. The optimizer was set incorrectly
Solution
Step 1: Understand the error cause
A ValueError about shape mismatch usually means input or output data shapes don't match what the model expects.
Step 2: Check other options
Not compiling causes different errors, predict() vs evaluate() is unrelated, and optimizer issues cause training errors, not shape errors.
Final Answer:
The shapes of X_test and y_test do not match the model's expected input and output shapes -> Option A
Quick Check:
Shape mismatch causes ValueError in evaluate() [OK]
Hint: Check input/output shapes match model before evaluate() [OK]
Common Mistakes:
Ignoring shape mismatch and blaming optimizer
Confusing predict() with evaluate() errors
Not compiling model but blaming shape error
5. You trained a model and want to compare its performance on two test sets: X_test1, y_test1 and X_test2, y_test2. Which approach correctly compares their accuracy using TensorFlow?
hard
A. Use model.evaluate() on both test sets separately and compare the returned loss or accuracy values
B. Use model.predict() on both test sets and compare the raw predictions directly
C. Train the model again on X_test2, y_test2 and compare training losses
D. Use model.fit() on both test sets and compare the final epoch losses
Solution
Step 1: Understand evaluation for performance
model.evaluate() returns loss and metrics on test data without training, ideal for comparing performance.
Step 2: Why other options are incorrect
Comparing raw predictions is not a direct accuracy measure; retraining or fitting on test sets changes the model and is not a fair comparison.
Final Answer:
Use model.evaluate() on both test sets separately and compare the returned loss or accuracy values -> Option A
Quick Check:
Evaluate test sets separately for fair comparison [OK]
Hint: Evaluate test sets separately, compare metrics [OK]