Use this when a model trains badly, too well, or unpredictably.
First Checks
- [ ] Did the notebook run from top to bottom?
- [ ] Are random seeds visible?
- [ ] Are train, validation, and test roles separate?
- [ ] Do input tensors have the expected shape?
- [ ] Does the target have the expected shape and type?
- [ ] Is the loss function suitable for the target?
- [ ] Is the optimizer updating model parameters?
- [ ] Is
optimizer.zero_grad()used before backpropagation?
Curve Checks
- [ ] Training loss decreases.
- [ ] Validation loss is measured separately.
- [ ] Training improves but validation does not: possible overfitting.
- [ ] Neither improves: possible underfitting, wrong learning rate, data issue, or code bug.
- [ ] Loss jumps around: possible learning-rate or data-scale problem.
Data Checks
- [ ] Labels look plausible.
- [ ] No duplicate leakage between train and validation.
- [ ] Features are scaled or encoded where needed.
- [ ] Class balance or target range is inspected.
- [ ] Baseline result is known.
Decision
- [ ] Accept the result only as a learning artifact.
- [ ] Revise the next experiment clearly.
- [ ] Record the defect and retest.
- [ ] Write a limitation before sharing the notebook.
