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 the training history object in TensorFlow?
The training history object stores the values of metrics like loss and accuracy for each epoch during model training. It helps track how the model improves over time.
Click to reveal answer
beginner
How can you access the training loss values after training a model in TensorFlow?
You can access the training loss values using history.history['loss'], where history is the object returned by model.fit().
Click to reveal answer
intermediate
Why is it useful to plot training and validation accuracy during training?
Plotting training and validation accuracy helps you see if the model is learning well and if it is overfitting or underfitting by comparing performance on training and unseen data.
Click to reveal answer
beginner
What Python library is commonly used to visualize training history in TensorFlow?
Matplotlib is commonly used to create plots of training and validation metrics over epochs.
Click to reveal answer
intermediate
What does it mean if validation loss starts increasing while training loss keeps decreasing?
It usually means the model is overfitting: it learns the training data too well but performs worse on new data.
Click to reveal answer
What does the 'history' object returned by model.fit() contain?
AThe dataset used for training
BOnly the final model weights
CTraining and validation metrics for each epoch
DThe model architecture
✗ Incorrect
The history object contains the recorded metrics like loss and accuracy for each epoch during training.
Which method is used to train a model in TensorFlow and get the training history?
Amodel.fit()
Bmodel.evaluate()
Cmodel.predict()
Dmodel.compile()
✗ Incorrect
model.fit() trains the model and returns a history object with training metrics.
If training accuracy improves but validation accuracy stays the same, what might be happening?
AThe model is underfitting
BThe model is overfitting
CThe model is perfectly trained
DThe data is corrupted
✗ Incorrect
This suggests overfitting: the model fits training data well but does not generalize.
Which Python library is best for plotting training history graphs?
AMatplotlib
BPandas
CNumPy
DScikit-learn
✗ Incorrect
Matplotlib is widely used for creating plots and visualizations.
What does a decreasing training loss and increasing validation loss indicate?
AData leakage
BUnderfitting
CGood model generalization
DOverfitting
✗ Incorrect
This pattern indicates overfitting, where the model fits training data too closely.
Explain how to use the training history object to visualize model performance over epochs.
Think about what data is stored in history and how plotting helps understand training.
You got /4 concepts.
Describe what it means when validation accuracy is lower than training accuracy and how visualization helps identify this.
Consider how training and validation metrics relate to model generalization.
You got /4 concepts.
Practice
(1/5)
1. What does the history.history object store after training a TensorFlow model?
easy
A. The dataset used for training
B. The model's architecture details
C. Loss and accuracy values for each epoch during training
D. The optimizer's internal state
Solution
Step 1: Understand what history.history contains
After training, TensorFlow's model.fit() returns a history object that stores metrics like loss and accuracy for each epoch.
Step 2: Identify the correct stored data
The history.history dictionary holds lists of loss and accuracy values recorded at each epoch for training and validation.
Final Answer:
Loss and accuracy values for each epoch during training -> Option C
Quick Check:
Training metrics stored in history.history = Loss and accuracy values for each epoch during training [OK]
Hint: Remember: history stores metrics per epoch, not model or data [OK]
Common Mistakes:
Confusing history with model architecture
Thinking history stores the dataset
Assuming history holds optimizer state
2. Which of the following is the correct way to plot training and validation accuracy from a TensorFlow history object using matplotlib?
easy
A. plt.plot(history.history['accuracy']); plt.plot(history.history['val_accuracy'])
B. plt.plot(history['accuracy']); plt.plot(history['val_accuracy'])
C. plt.plot(history.accuracy); plt.plot(history.val_accuracy)
D. plt.plot(history.accuracy()); plt.plot(history.val_accuracy())
Solution
Step 1: Recall how to access metrics in history object
The history object stores metrics in a dictionary under history.history. Access keys like 'accuracy' and 'val_accuracy' as dictionary keys.
Step 2: Use matplotlib to plot lists from the dictionary
Use plt.plot() with history.history['accuracy'] and history.history['val_accuracy'] to plot training and validation accuracy.
Final Answer:
plt.plot(history.history['accuracy']); plt.plot(history.history['val_accuracy']) -> Option A
Quick Check:
Access metrics via history.history['key'] for plotting [OK]
Hint: Always access metrics with history.history['metric_name'] [OK]
Common Mistakes:
Using dot notation instead of dictionary keys
Calling metrics as functions
Accessing history directly without .history
3. Given the following code snippet, what will be the output of print(history.history['loss']) after training for 3 epochs?
Step 1: Understand what history.history['loss'] contains
It stores the loss values recorded at the end of each epoch during training as a list.
Step 2: Predict the output after 3 epochs
Since training runs for 3 epochs, the list will have 3 float values representing loss per epoch, not just one or a fixed list.
Final Answer:
A list of 3 loss values, one per epoch -> Option A
Quick Check:
Loss per epoch stored as list = A list of 3 loss values, one per epoch [OK]
Hint: Loss history is a list with one value per epoch [OK]
Common Mistakes:
Expecting a single float instead of a list
Assuming fixed loss values without training
Thinking 'loss' key is missing
4. Identify the error in this code snippet that tries to plot training and validation loss:
import matplotlib.pyplot as plt
plt.plot(history['loss'])
plt.plot(history['val_loss'])
plt.show()
medium
A. plt.plot() cannot plot lists
B. history should be accessed as history.history, not directly
C. Missing plt.title() causes error
D. No error, code runs fine
Solution
Step 1: Check how history metrics are accessed
The history object stores metrics inside the history attribute, so direct access like history['loss'] is incorrect.
Step 2: Correct the access to history.history['loss']
To fix, use history.history['loss'] and history.history['val_loss'] for plotting.
Final Answer:
history should be accessed as history.history, not directly -> Option B
Quick Check:
Access metrics via history.history, not history [OK]
Hint: Use history.history to access metrics, not history alone [OK]
Common Mistakes:
Accessing history metrics directly
Assuming plt.plot can't plot lists
Thinking missing title causes error
5. You trained a model for 10 epochs but notice the validation loss increases after epoch 5 while training loss decreases. How can visualizing the training history help you decide the next step?
hard
A. It suggests increasing the learning rate to fix validation loss
B. It confirms the model is perfect, so no changes needed
C. It means the training data is incorrect and should be discarded
D. It shows overfitting, so you might stop training early or add regularization
Solution
Step 1: Interpret the training and validation loss curves
When training loss decreases but validation loss increases, it indicates the model is overfitting the training data.
Step 2: Decide actions based on visualization
Visualizing history helps identify overfitting, suggesting to stop early, add dropout, or use regularization to improve generalization.
Final Answer:
It shows overfitting, so you might stop training early or add regularization -> Option D
Quick Check:
Increasing validation loss with decreasing training loss = overfitting [OK]
Hint: Watch for validation loss rising while training loss falls [OK]