Skip to main content

The first collection of surrogate benchmarks for Joint Architecture and Hyperparameter Search.

Project description

JAHS-Bench-201

The first collection of surrogate benchmarks for Joint Architecture and Hyperparameter Search (JAHS), built to also support and facilitate research on multi-objective, cost-aware and (multi) multi-fidelity optimization algorithms.

Python versions License

Please see our documentation here. Precise details about the data collection and surrogate creation process, as well as our experiments, can be found in the assosciated publication.

Installation

Using pip

pip install jahs-bench

Optionally, you can download the data required to use the surrogate benchmark ahead of time with

python -m jahs_bench.download --target surrogates

To test if the installation was successful, you can, e.g, run a minimal example with

python -m jahs_bench_examples.minimal

This should randomly sample a configuration, and display both the sampled configuration and the result of querying the surrogate for that configuration. Note: We have recently discovered that XGBoost - the library used for our surrogate models - can suffer from some incompatibility issues with MacOS. Users who run into such an issue may consult this discussion for details.

Using the Benchmark

Creating Configurations

Configurations in our Joint Architecture and Hyperparameter (JAHS) space are represented as dictionaries, e.g.,:

config = {
    'Optimizer': 'SGD',
    'LearningRate': 0.1,
    'WeightDecay': 5e-05,
    'Activation': 'Mish',
    'TrivialAugment': False,
    'Op1': 4,
    'Op2': 1,
    'Op3': 2,
    'Op4': 0,
    'Op5': 2,
    'Op6': 1,
    'N': 5,
    'W': 16,
    'Resolution': 1.0,
}

For a full description on the search space and configurations see our documentation.

Evaluating Configurations

import jahs_bench

benchmark = jahs_bench.Benchmark(task="cifar10", download=True)

# Query a random configuration
config = benchmark.sample_config()
results = benchmark(config, nepochs=200)

# Display the outputs
print(f"Config: {config}")  # A dict
print(f"Result: {results}")  # A dict

More Evaluation Options

The API of our benchmark enables users to either query a surrogate model (the default) or the tables of performance data, or train a configuration from our search space from scratch using the same pipeline as was used by our benchmark. However, users should note that the latter functionality requires the installation of jahs_bench_201 with the optional data_creation component and its relevant dependencies. The relevant data can be automatically downloaded by our API. See our documentation for details.

Benchmark Data

We provide documentation for the performance dataset used to train our surrogate models and further information on our surrogate models.

Experiments and Evaluation Protocol

See our experiments repository and our documentation.

Leaderboards

We maintain leaderboards for several optimization tasks and algorithmic frameworks.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jahs_bench-1.1.0.tar.gz (157.5 kB view details)

Uploaded Source

Built Distribution

jahs_bench-1.1.0-py3-none-any.whl (187.0 kB view details)

Uploaded Python 3

File details

Details for the file jahs_bench-1.1.0.tar.gz.

File metadata

  • Download URL: jahs_bench-1.1.0.tar.gz
  • Upload date:
  • Size: 157.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.8 Linux/5.15.76-1-MANJARO

File hashes

Hashes for jahs_bench-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0bfd5e69af436f2d514726fb6c25d30589e8c2787e82721c1331ecc69a8ea7d2
MD5 7cdb855f6cd93ba8cac8ad70aed0bb15
BLAKE2b-256 e22ccf6947313f1af0bfdc27d9e48b034e3be7a6e34a56f580150fb6279a87f5

See more details on using hashes here.

File details

Details for the file jahs_bench-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: jahs_bench-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 187.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.8 Linux/5.15.76-1-MANJARO

File hashes

Hashes for jahs_bench-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 751b61f2a583017558a3c0de3f0625840e0b0401e4b94cf7efec48c99f7a5bd7
MD5 0433f206b771c14408d734c4305ea168
BLAKE2b-256 93bed3023802058901e74c6af055ef24401b0d282969050d4d60d7a2260ecbbe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page