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.
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.
Release files for jahs-bench 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jahs_bench-1.1.0.tar.gz | 157.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jahs_bench-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 344.5 kB
Release files / jahs_bench-1.1.0.tar.gz
| Download URL | jahs_bench-1.1.0.tar.gz |
|---|---|
| Size | 157.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0bfd5e69af436f2d514726fb6c25d30589e8c2787e82721c1331ecc69a8ea7d2
|
|
BLAKE2b-256 checksum How to use checksums |
e22ccf6947313f1af0bfdc27d9e48b034e3be7a6e34a56f580150fb6279a87f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.3.2 CPython/3.10.8 Linux/5.15.76-1-MANJARO
|
Release files / jahs_bench-1.1.0-py3-none-any.whl
| Download URL | jahs_bench-1.1.0-py3-none-any.whl |
|---|---|
| Size | 187.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
751b61f2a583017558a3c0de3f0625840e0b0401e4b94cf7efec48c99f7a5bd7
|
|
BLAKE2b-256 checksum How to use checksums |
93bed3023802058901e74c6af055ef24401b0d282969050d4d60d7a2260ecbbe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.3.2 CPython/3.10.8 Linux/5.15.76-1-MANJARO
|