python-3.xhyperparametersrayray-tune

How to define SearchAlgorithm-agnostic, high-dimensional search space in Ray Tune?


I have two questions concerning Ray Tune. First, how can I define a hyperparameter search space independently from the particular SearchAlgorithm used. For instance, HyperOpt uses something like 'height': hp.uniform('height', -100, 100) whereas BayesOpt uses something like 'width': (0, 20); is there some generic interface or API?

Second, I would like to be able to define a hyperparameter search space using a shape argument, akin to defining a numpy array. I would like something like 'heights': hp.uniform('height', -100, 100, shape=(10,)). Is there a way to do this?


Solution

  • is there some generic interface or API?

    There's unfortunately no generic interface for hyperparameter spaces in Tune. This is partly because it is hard to capture the entirety of each specific "language" in a cross compatible fashion.

    Second, I would like to be able to define a hyperparameter search space using a shape argument, akin to defining a numpy array. I would like something like 'heights': hp.uniform('height', -100, 100, shape=(10,)). Is there a way to do this?

    A quick look into hyperopt code looks like this might be what you're looking for.

     def uniform(low, high, rng=None, size=())
    

    Hope that helps!