← all repositories
JasperSnoek/spearmint

The 2012 hyperparameter tuner that won't stop running

A legacy Bayesian optimization package that still works if you can stomach Python 2.7 and Protocol Buffers.

1.4k stars Python ML FrameworksLLMOps · Eval
spearmint
Not currently ranked — collecting fresh signals.
star history

What it does

Spearmint automatically tunes parameters to minimize some expensive objective function in as few evaluations as possible. You wrap your experiment in a Python or Matlab function, hand Spearmint a config file with parameter bounds, and it iteratively proposes new configurations using Gaussian process expected improvement. It can run locally, across multiple cores, or on a Sun Grid Engine cluster.

The interesting bit

The package ships two distinct personalities: “Spearmint” for fully automated experiment management with Protocol Buffers, and “Spearmint-lite” for flat-file JSON operation when you want to stay in the loop. The authors also built in resumability—kill the process mid-run and restart without losing progress, which matters when your experiments take hours each.

Key highlights

  • Implements the algorithms from the NIPS 2012 paper “Practical Bayesian Optimization of Machine Learning Algorithms”
  • Supports continuous, integer, and categorical (ENUM) variables
  • Parallel execution via local processes or SGE cluster queues
  • Includes a local web status page (-w flag) for monitoring runs
  • Matlab wrappers supported alongside Python

Caveats

  • Requires Python 2.7, which reached end-of-life in 2020
  • The README explicitly states this repo is in maintenance-only mode; active development moved to a new repository with a non-commercial license
  • Protocol Buffers dependency for the full version adds setup friction

Verdict

Worth a look if you need the original reference implementation under a permissive license, or if you’re reproducing 2012-era ML experiments. Everyone else should probably evaluate the newer HIPS/Spearmint fork or modern alternatives like Optuna.

Frequently asked

What is JasperSnoek/spearmint?
A legacy Bayesian optimization package that still works if you can stomach Python 2.7 and Protocol Buffers.
Is spearmint open source?
Yes — JasperSnoek/spearmint is an open-source project tracked on heatdrop.
What language is spearmint written in?
JasperSnoek/spearmint is primarily written in Python.
How popular is spearmint?
JasperSnoek/spearmint has 1.4k stars on GitHub.
Where can I find spearmint?
JasperSnoek/spearmint is on GitHub at https://github.com/JasperSnoek/spearmint.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.