A result that can't be reproduced isn't a result. Fixing random seeds, tracking hyperparameters, and reporting variance are the minimum bar for credible ML research.
A 2019 NeurIPS reproducibility study found that over 50% of published ML results could not be reproduced by independent teams. The causes are not fraud — they are mundane: missing hyperparameters, unlisted preprocessing steps, cherry-picked random seeds, and hardware differences. For a result to be science, it must be reproducible.
The most common reproducibility failure is not malicious. Authors report the best-of-N run, forget to fix the seed, or use a slightly different preprocessing pipeline. When a reviewer runs the released code, nothing matches. Reproducibility is a discipline, not a checkbox.
Three things determine whether your experiment is reproducible: the random seed chain (NumPy, PyTorch, CUDA), the software environment (Python version, library versions), and the configuration (every hyperparameter as a config file, not hardcoded). Miss any one of these and reproducibility is luck.
random, numpy, torch, torch.cudarequirements.txt with exact versionstorch.backends.cudnn.benchmark = True in training (non-deterministic)If you cannot reproduce a run from your tracking system alone, you have not logged enough. Every experiment should record: all hyperparameters, all metrics over time, the model checkpoint, the git commit hash, and the command used to launch it. Tools like Weights & Biases, MLflow, and Neptune automate most of this.
The golden rule: log everything at the start of the run, not the end. You never know which runs will fail mid-way. If you only log on success, you lose all partial data from crashes and will repeatedly run identical failing experiments.
A single number — "our method achieves 87.3% accuracy" — is meaningless without variance. Run every experiment with at least 5 different random seeds. Report mean ± standard deviation. Use significance tests (Wilcoxon signed-rank or paired t-test) when comparing methods. A difference is only a claim when it is statistically reliable.
Say the answer out loud before revealing — recalling is what makes it stick.
What percentage of ML results failed to reproduce in the 2019 NeurIPS study?
What must you set to make a PyTorch experiment fully reproducible?
What is the golden rule of experiment tracking?
Why is reporting a single accuracy number without variance misleading?