ray.tune.schedulers.AsyncHyperBandScheduler#

class ray.tune.schedulers.AsyncHyperBandScheduler(time_attr: str = 'training_iteration', metric: str | None = None, mode: str | None = None, max_t: int = 100, grace_period: int = 1, reduction_factor: float = 4, brackets: int = 1, stop_last_trials: bool = True)[源代码]#

基类:FIFOScheduler

实现异步连续减半。

这应该提供与HyperBand类似的理论性能,但避免了HyperBand面临的滞后问题。一个实现细节是,当使用多个括号时,试验分配到括号是基于一个softmax概率随机进行的。

参见 https://arxiv.org/abs/1810.05934

参数:
  • time_attr – 用于比较时间的训练结果属性。请注意,您可以传入非时间性的内容,例如 training_iteration 作为进度的度量,唯一的要求是该属性应单调递增。

  • metric – 训练结果目标值属性。停止程序将使用此属性。如果为 None 但传递了模式,则默认使用 ray.tune.result.DEFAULT_METRIC

  • mode – 其中之一 {min, max}。确定目标是最小化还是最大化指标属性。

  • max_t – 每个试验的最大时间单位。试验将在超过 max_t 时间单位(由 time_attr 决定)后停止。

  • grace_period – 只有在时间上至少达到这个年龄的试验才会停止。单位与 time_attr 属性指定的单位相同。

  • reduction_factor – 用于设置减半率和数量。这只是一个无量纲的标量。

  • brackets – 括号的数量。每个括号都有一个不同的减半率,由减小因子指定。

  • stop_last_trials – 在达到 max_t 后是否终止试验。默认为 True。

set_search_properties(metric: str | None, mode: str | None, **spec) bool[源代码]#

将搜索属性传递给调度器。

此方法作为实例化调度器的替代方案,这些调度器通过其自身的 metricmode 参数对指标做出反应。

参数:
  • metric – 优化指标

  • mode – [“min”, “max”] 之一。优化的方向。

  • **spec – 任何用于向前兼容的 kwargs。例如 Experiment.PUBLIC_KEYS 等信息通过这里提供。

on_trial_add(tune_controller: TuneController, trial: Trial)[源代码]#

当一个新的试验被添加到试验运行器时调用。

on_trial_result(tune_controller: TuneController, trial: Trial, result: Dict) str[源代码]#

在每次试验返回的中间结果上调用。

此时,试验调度器可以通过返回 CONTINUE、PAUSE 或 STOP 之一来做出决定。这仅在试验处于 RUNNING 状态时调用。

on_trial_complete(tune_controller: TuneController, trial: Trial, result: Dict)[源代码]#

试用完成的通知。

这仅在试验处于 RUNNING 状态且自然完成或通过手动终止时调用。

on_trial_remove(tune_controller: TuneController, trial: Trial)[源代码]#

调用以移除试用。

当试验处于PAUSED或PENDING状态时,会调用此方法。否则,调用 on_trial_complete

debug_string() str[源代码]#

返回一个适合打印到控制台的人类可读消息。

save(checkpoint_path: str)[源代码]#

将试验调度器保存到检查点

restore(checkpoint_path: str)[源代码]#

从检查点恢复试用调度器。