PyHopper’s documentation!

PyHopper is a black-box optimizer, made specifically for high-dimensional hyperparameter optimization problems arising in machine learning research. Quick to install

pip3 install -U pyhopper

and straightforward to use

import pyhopper

def objective(params: dict) -> float:
    model = build_model(params["hidden_size"],...)
    # .... train and evaluate the model
    return val_accuracy

search = pyhopper.Search(
    {
        "hidden_size": pyhopper.int(100,500),
        "dropout_rate": pyhopper.float(0,0.4),
        "opt": pyhopper.choice(["adam","rmsprop","sgd"]),
    }
)
best_params = search.run(objective, "maximize", "1h 30min",n_jobs="per-gpu")

PyHopper is a scheduled Markov chain Monte Carlo (sMCMC) sampler that

  • runs parallel across multiple CPUs and GPUs

  • natively supports NumPy array parameters with millions of dimensions

  • automatically focuses its search space based on the remaining runtime

User’s Guide