Model Pipeline - Training and validation loss tracking
This pipeline trains a simple model and tracks both training and validation loss to monitor learning progress and detect overfitting.
This pipeline trains a simple model and tracks both training and validation loss to monitor learning progress and detect overfitting.
Loss
0.9 |*
0.8 | *
0.7 | *
0.6 | *
0.5 | *
0.4 | *
0.3 | *
+--------
1 2 3 4 5 Epochs| Epoch | Loss ↓ | Accuracy ↑ | Observation |
|---|---|---|---|
| 1 | 0.85 | 0.60 | Training loss starts high, accuracy moderate |
| 2 | 0.65 | 0.72 | Loss decreases, accuracy improves |
| 3 | 0.50 | 0.80 | Model learns well, loss drops further |
| 4 | 0.40 | 0.85 | Training loss continues to decrease |
| 5 | 0.35 | 0.88 | Training loss low, accuracy high |
train_losses = []
for inputs, targets in train_loader:
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, targets)
loss.backward()
optimizer.step()
train_losses.append(loss.item())
avg_train_loss = sum(train_losses) / len(train_losses)
print(f"Average training loss: {avg_train_loss:.4f}")
Assuming losses per batch are [0.8, 0.6, 0.4], what is the output?model.eval()
val_losses = []
for inputs, targets in val_loader:
outputs = model(inputs)
loss = criterion(outputs, targets)
val_losses.append(loss)
avg_val_loss = sum(val_losses) / len(val_losses)
print(f"Validation loss: {avg_val_loss:.4f}")Pass the test and this pattern moves unknown