This pipeline shows how choosing different learning rates affects training a simple image classifier. The learning rate controls how big steps the model takes to learn from mistakes.
Learning rate selection in Computer Vision - Model Pipeline Trace
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Model Pipeline - Learning rate selection
Data Flow - 5 Stages
1Input images
1000 images x 28 x 28 pixels x 1 channel→Load grayscale images of handwritten digits→1000 images x 28 x 28 pixels x 1 channel
↓
2Preprocessing
1000 images x 28 x 28 x 1→Normalize pixel values to range 0-1→1000 images x 28 x 28 x 1
↓
3Feature extraction
1000 images x 28 x 28 x 1→Flatten images to 784 features→1000 samples x 784 features
↓
4Model training
800 samples x 784 features→Train simple neural network with chosen learning rate→Trained model weights
↓
5Evaluation
200 samples x 784 features→Calculate accuracy and loss on test set→Accuracy and loss values
Training Trace - Epoch by Epoch
Loss
1.2 |*
0.9 | **
0.7 | ***
0.55| ****
0.45| *****
1 2 3 4 5 Epochs| Epoch | Loss ↓ | Accuracy ↑ | Observation |
|---|---|---|---|
| 1 | 1.2 | 0.45 | High loss and low accuracy; model just started learning |
| 2 | 0.9 | 0.60 | Loss decreased, accuracy improved |
| 3 | 0.7 | 0.72 | Model learning well with chosen learning rate |
| 4 | 0.55 | 0.80 | Loss continues to decrease, accuracy rises |
| 5 | 0.45 | 0.85 | Training converging nicely |
Prediction Trace - 4 Layers
Layer 1: Input image flattening
Layer 2: First dense layer with ReLU
Layer 3: Output layer with softmax
Layer 4: Prediction
Model Quiz - 3 Questions
Test your understanding
What happens if the learning rate is too high?
Key Insight
Practice
1.
What does the learning rate control in training a computer vision model?
easy
Solution
Step 1: Understand the role of learning rate
The learning rate determines how much the model changes its weights after seeing each example.Step 2: Connect learning rate to model updates
A higher learning rate means faster updates, while a lower rate means slower updates.Final Answer:
How fast the model updates its knowledge -> Option CQuick Check:
Learning rate controls update speed = C [OK]
Hint: Learning rate = speed of model learning updates [OK]
Common Mistakes:
- Confusing learning rate with model size
- Thinking learning rate changes input data
- Mixing learning rate with activation functions
2.
Which of the following is the correct way to set a learning rate of 0.01 using PyTorch's SGD optimizer?
import torch.optim as optim
optimizer = optim.SGD(model.parameters(), lr=___)easy
Solution
Step 1: Check the expected type for learning rate
The learning rate parameter expects a float number, not a string or variable name.Step 2: Identify the correct float value for 0.01
Using 0.01 as a float sets the learning rate correctly.Final Answer:
0.01 -> Option AQuick Check:
Learning rate as float = 0.01 [OK]
Hint: Use float numbers, not strings or variables, for lr [OK]
Common Mistakes:
- Using string "0.01" instead of float 0.01
- Passing undefined variable learning_rate
- Setting lr to 0.1 by mistake
3.
Consider this training loop snippet for a vision model:
learning_rate = 0.5
for epoch in range(3):
loss = train_one_epoch(model, data, learning_rate)
print(f"Epoch {epoch+1} loss: {loss:.2f}")If the learning rate is too high, what is the most likely output behavior?
medium
Solution
Step 1: Understand effect of high learning rate
A very high learning rate like 0.5 can cause the model to overshoot the best weights, making training unstable.Step 2: Predict loss behavior with unstable training
Loss will not steadily decrease but will jump up and down or increase.Final Answer:
Loss fluctuates or increases wildly -> Option DQuick Check:
High lr causes unstable loss = A [OK]
Hint: High learning rate causes unstable or rising loss [OK]
Common Mistakes:
- Assuming loss always decreases regardless of lr
- Thinking loss becomes zero immediately
- Confusing constant loss with stable training
4.
Given this code snippet, identify the error related to learning rate usage:
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
for epoch in range(5):
loss = train(model, data)
optimizer.step()
optimizer.zero_grad()medium
Solution
Step 1: Check optimizer usage order
Before calling optimizer.step(), gradients must be computed by loss.backward().Step 2: Identify missing backward call
The code misses loss.backward(), so optimizer.step() updates without gradients.Final Answer:
optimizer.step() called before loss.backward() -> Option AQuick Check:
Missing loss.backward() before step = B [OK]
Hint: Call loss.backward() before optimizer.step() [OK]
Common Mistakes:
- Thinking learning rate 0.001 is too high for Adam
- Believing zero_grad() order is wrong here
- Assuming learning rate must change each epoch
5.
You want to train a deep vision model on a new dataset. You start with a learning rate of 0.1 but notice training loss does not decrease. What is the best next step?
hard
Solution
Step 1: Analyze why loss does not decrease
A high learning rate like 0.1 can cause the model to skip the best weights, preventing loss decrease.Step 2: Choose a safer learning rate adjustment
Lowering the learning rate to 0.01 allows smaller, stable updates to improve training.Final Answer:
Decrease the learning rate to 0.01 and try again -> Option BQuick Check:
Lower lr if loss stuck = D [OK]
Hint: Lower learning rate if loss doesn't drop [OK]
Common Mistakes:
- Increasing learning rate when training fails
- Ignoring learning rate and training longer
- Removing learning rate parameter entirely
