如何在 Ray Tune 中定义与搜索算法无关的高维搜索空间?

Posted

技术标签:

【中文标题】如何在 Ray Tune 中定义与搜索算法无关的高维搜索空间?【英文标题】:How to define SearchAlgorithm-agnostic, high-dimensional search space in Ray Tune? 【发布时间】:2019-07-22 19:23:52 【问题描述】:

我有两个关于Ray Tune 的问题。首先,如何独立于使用的特定SearchAlgorithm 定义超参数搜索空间。例如,HyperOpt 使用 'height': hp.uniform('height', -100, 100) 之类的东西,而 BayesOpt 使用 'width': (0, 20) 之类的东西;是否有一些通用接口或 API?

其次,我希望能够使用 shape 参数定义超参数搜索空间,类似于定义 numpy 数组。我想要'heights': hp.uniform('height', -100, 100, shape=(10,)) 之类的东西。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

是否有一些通用接口或 API?

遗憾的是,Tune 中没有用于超参数空间的通用接口。这部分是因为很难以交叉兼容的方式捕获每种特定“语言”的全部内容。

其次,我希望能够使用 shape 参数定义超参数搜索空间,类似于定义 numpy 数组。我想要类似'heights'的东西:hp.uniform('height', -100, 100, shape=(10,))。有没有办法做到这一点?

快速查看 hyperopt 代码类似于 this might be what you're looking for。

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

希望有帮助!

【讨论】:

以上是关于如何在 Ray Tune 中定义与搜索算法无关的高维搜索空间?的主要内容,如果未能解决你的问题,请参考以下文章

[Ray.Tune]使用心得(待完善)

[Ray.Tune]使用心得(待完善)

满足复杂条件时提前停止 ray.tune 实验?

Ray[tune] for pytorch TypeError: ray.cloudpickle.dumps

[Ray.Tune] [已解决] TypeError: ray.cloudpickle.dumps

[Ray.Tune] [已解决] TypeError: ray.cloudpickle.dumps