The metrics you must always log
Bare minimum: training loss per step, validation loss per epoch, validation accuracy (or task-appropriate metric) per epoch, learning rate per step. With these four, you can debug almost anything.
Recommended additions: gradient norm per step (catches exploding gradients), per-class accuracy (catches imbalance), throughput in examples/sec (catches data-loading regressions).
matplotlib in a Jupyter cell is fine for a one-off; W&B or TensorBoard for serious work.Epoch averages vs running averages
Training loss is best plotted as a smoothed running average — single-step loss is too noisy to read. 0.99 * old + 0.01 * new is a fine default. Validation loss is once per epoch and you plot the raw value.
Don't trust accuracy alone
Accuracy hides imbalance, calibration, and edge-case failures. Always look at: precision/recall per class for classification; MAE/RMSE/quantile errors for regression; BLEU/ROUGE/exact-match for generation; the confusion matrix on the validation set after each epoch.