ray.tune.search.basic_variant.BasicVariantGenerator#

class ray.tune.search.basic_variant.BasicVariantGenerator(points_to_evaluate: List[Dict] | None = None, max_concurrent: int = 0, constant_grid_search: bool = False, random_state: int | numpy.random.Generator | numpy.random.RandomState | None = None)[源代码]#

基类:SearchAlgorithm

使用 Tune 的变体生成来解析变量。

如果没有指定其他搜索算法,则使用此默认搜索算法。

参数:
  • points_to_evaluate – 初始参数建议首先运行。当你已经有一些好的参数想要首先运行以帮助算法为未来的参数做出更好的建议时,可以使用此功能。需要是一个包含配置的dict列表。

  • max_concurrent – 最大并发运行试验数。如果为0(默认),则不设上限。

  • constant_grid_search – 如果设置为 True ,Ray Tune 将 首先 尝试采样随机值,并在网格搜索参数中保持这些值不变。如果设置为 False (默认),Ray Tune 将在每次网格搜索条件下采样新的随机参数。

  • random_state – 用于可重复结果的种子或 numpy 随机生成器。如果为 None(默认),将使用全局 numpy 随机生成器(np.random)。请注意,在分布式环境中无法保证完全的可重复性。

示例:

from ray import tune

# This will automatically use the `BasicVariantGenerator`
tuner = tune.Tuner(
    lambda config: config["a"] + config["b"],
    tune_config=tune.TuneConfig(
        num_samples=4
    ),
    param_space={
        "a": tune.grid_search([1, 2]),
        "b": tune.randint(0, 3)
    },
)
tuner.fit()

在上面的例子中,将生成8次试验:对于每个样本(4),网格搜索中``a``的每个变体将被采样一次。``b``参数将被随机采样。

生成器接受一个预设的评估点列表。这些点将替换传递给 BasicVariantGenerator 的每个实验的第一个样本。

每个点将替换指定 num_samples 的一个样本。如果网格搜索变量被预设中的值覆盖,样本数量将会因此减少。

示例:

from ray import tune
from ray.tune.search.basic_variant import BasicVariantGenerator

tuner = tune.Tuner(
    lambda config: config["a"] + config["b"],
    tune_config=tune.TuneConfig(
        search_alg=BasicVariantGenerator(points_to_evaluate=[
            {"a": 2, "b": 2},
            {"a": 1},
            {"b": 2}
        ]),
        num_samples=4
    ),
    param_space={
        "a": tune.grid_search([1, 2]),
        "b": tune.randint(0, 3)
    },
)
tuner.fit()

上面的例子将通过四个样本产生六个试验:

  • 第一个示例将生成一个试验,其中 a=2b=2

  • 第二个示例将生成一个试验,其中 a=1b 随机采样

  • 第三个示例将生成两个试验,每个试验对应 a 的一个网格搜索值。这两个试验的 b 值都将为 2

  • 第四个样本将产生两个试验,每个试验对应 a 的一个网格搜索值。b 将在这两个试验中随机且独立地采样。

方法

add_configurations

根据实验规范生成链。

has_checkpoint

在 dirpath 内是否存在检查点文件。

is_finished

如果没有试验需要排队进入 TrialRunner,则返回 True。

next_trial

提供一个试验对象,将其排队到试验运行器中。

on_trial_result

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

restore_from_dir

从 dirpath 恢复 self + 搜索器 + 搜索包装器。

set_finished

标记搜索算法为已完成。

set_search_properties

将搜索属性传递给搜索算法。

属性

CKPT_FILE_TMPL

metric

total_samples

获取要生成的总试验次数