| Loss barely changes | Learning rate too small, frozen weights, weak signal in the data | Gradient magnitudes, learning rate, input pipeline |
| Loss becomes NaN | Numerical instability, exploding gradients, invalid inputs | Inputs, gradients, loss function configuration |
| Train improves, validation worsens | Possible overfitting | Learning curves, data split, regularization |
| Both train and validation remain poor | Underfitting, optimization problems, data issues | Architecture, learning rate, labels, features |
| Training very slow | Data pipeline bottleneck, wrong device, model complexity | Device utilization, batch loading, model size |
| Out-of-memory error | Batch, model or input too large for the device | GPU memory usage, batch size, input resolution |
| Large run-to-run differences | Random initialization, data order, small validation set | Seeds, split design, experiment configuration |