ray.tune.schedulers.resource_changing_scheduler.DistributeResourcesToTopJob#

class ray.tune.schedulers.resource_changing_scheduler.DistributeResourcesToTopJob(add_bundles: bool = False, increase_by: Dict[str, float] | None = None, increase_by_times: int = -1, reserve_resources: Dict[str, float] | None = None, metric: str | None = None, mode: str | None = None)[源代码]#

基类:DistributeResources

此类创建一个“TopJob”资源分配函数。

该函数将把所有空闲资源分配给表现最佳的试验(根据 metricmode 定义)。之前的最佳试验不会被剥夺资源,除非在下面概述的情况下。

如果由于某些原因,一个试验最终获得的资源超过了可用资源,它将会向下调整。同时,它也会确保该试验至少拥有与开始时相同的资源(base_trial_resource)。

该函数返回一个更新了资源需求的新 PlacementGroupFactory,或者返回 None。如果返回的 PlacementGroupFactory 在值上与试验当前的相同,调度器将在内部跳过更新过程(与返回 None 相同)。

参数:
  • add_bundles – 如果为真,从免费资源创建新的资源包。否则,将它们分散在 base_trial_resource 资源包中。

  • increase_by – 一个包含键值对的字典,表示试验将增加的资源(名称-数量)的原子单位。如果未设置,试验将增加1个CPU/GPU。

  • increase_by_times – 如果设置为 >=1 并且 increase_by 已设置,试验将增加最多 increase_by_times * increase_by 资源。如果设置为 <1,则不设置上限。如果 increase_by 未设置,则忽略此项。

  • reserve_resources – 一个资源名称-数量对的字典,表示不会分配给调整大小的试验的资源。属性应单调递增。

  • metric – 训练结果目标值属性。停止程序将使用此属性。如果为 None,将使用调度器的指标。

  • mode – 其中之一 {min, max}。确定目标是最小化还是最大化指标属性。如果为 None,将使用调度器的指标。

PublicAPI (测试版): 此API目前处于测试阶段,在成为稳定版本之前可能会发生变化。

方法