Integration of HyperSpace with Ray Tune hyperparameter search functionality.
Usage requirements:
- Definition of objective function which takes a config parameters, a dict supplied by Ray Tune.
- Location of hyperparameter bounds file in JSON format. See
example/example.json
- Number of trials to run per space
- Name of directory to create to store results
Number of total hyperspaces generated and searched is dependent on number of parameters n
, where the total number of spaces is 2^n
.
Also, if you plan on using the Weight and Biases functionality with logging in your objective function, you must specify your own Weight and Biases API Key. Logging should be performed using the @wandb.mixin
decorator from Ray Tune.
More information on that can be found here: https://docs.ray.io/en/master/tune/tutorials/tune-wandb.html
Note that this processes that generated hyperspaces concurrently, meaning that end results will need to be manually concatenated or processed individually in the specified results directory.
For more information on the HyperSpace library, see the original repo: https://github.com/yngtodd/hyperspace. HyperSpace must be installed in order for SpaceRay to work properly.
Note that HyperSpace has some dependencies on previous scikit versions which are not compatible. These dependencies are fixed in my fork of the project at https://github.com/maxzvyagin/hyperspace.
To install SpaceRay, simply clone and run pip install .
within the top level directory. Or, to install without cloning the repo, run pip install git+https://github.com/maxzvyagin/spaceray/
.
To see an example of how to use the tuning function, check out the example
folder.