optuna.samplers.RandomSampler

class optuna.samplers.RandomSampler(seed=None)[源代码]

使用随机采样的采样器。

此采样器基于 独立采样。有关“独立采样”的更多详情,另请参阅 BaseSampler

示例

import optuna
from optuna.samplers import RandomSampler


def objective(trial):
    x = trial.suggest_float("x", -5, 5)
    return x**2


study = optuna.create_study(sampler=RandomSampler())
study.optimize(objective, n_trials=10)
参数:

seed (int | None) – 随机数生成器的种子。

方法

after_trial(study, trial, state, values)

试验后处理。

before_trial(study, trial)

试验预处理。

infer_relative_search_space(study, trial)

推断将在目标试验中通过相对采样使用的搜索空间。

reseed_rng()

重新设定采样器的随机数生成器种子。

sample_independent(study, trial, param_name, ...)

为给定分布采样一个参数。

sample_relative(study, trial, search_space)

在给定的搜索空间中采样参数。

after_trial(study, trial, state, values)

试验后处理。

此方法在目标函数返回之后、试验完成并存储其状态之前调用。

注意

作为实验性功能在 v2.4.0 中添加。接口可能会在后续版本中更改,恕不另行通知。请参阅 https://github.com/optuna/optuna/releases/tag/v2.4.0

参数:
  • study (Study) – 目标研究对象。

  • trial (FrozenTrial) – 目标试验对象。修改此对象前请先复制。

  • state (TrialState) – 试验结果状态。

  • values (Sequence[float] | None) – 试验结果值。如果试验成功,保证不为 None

返回类型:

无返回值

before_trial(study, trial)

试验预处理。

此方法在目标函数被调用之前以及试验实例化之后调用。更准确地说,此方法在试验初始化期间调用, justo 在调用 infer_relative_search_space() 之前。换句话说,它负责应该在推断搜索空间之前完成的预处理。

注意

作为实验性功能在 v3.3.0 中添加。接口可能会在后续版本中更改,恕不另行通知。请参阅 https://github.com/optuna/optuna/releases/tag/v3.3.0

参数:
  • study (Study) – 目标研究对象。

  • trial (FrozenTrial) – 目标试验对象。

返回类型:

无返回值

infer_relative_search_space(study, trial)[源代码]

推断将在目标试验中通过相对采样使用的搜索空间。

此方法在调用 sample_relative() 方法之前调用,并且此方法返回的搜索空间会传递给它。未包含在搜索空间中的参数将通过使用 sample_independent() 方法进行采样。

参数:
  • study (Study) – 目标研究对象。

  • trial (FrozenTrial) – 目标试验对象。修改此对象前请先复制。

返回:

一个包含参数名称和参数分布的字典。

返回类型:

dict[str, BaseDistribution]

另请参阅

请参考 intersection_search_space() 作为 infer_relative_search_space() 的一种实现。

reseed_rng()[源代码]

重新设定采样器的随机数生成器种子。

如果使用选项 n_jobs>1 并行执行试验,此方法由 Study 实例调用。在这种情况下,采样器实例将被复制,包括随机数生成器的状态,并且它们可能会建议相同的值。为防止此问题,此方法为每个随机数生成器分配不同的种子。

返回类型:

无返回值

sample_independent(study, trial, param_name, param_distribution)[源代码]

为给定分布采样一个参数。

此方法仅针对 sample_relative() 方法返回的搜索空间中未包含的参数调用。此方法适用于不使用参数之间关系的采样算法,例如随机采样和 TPE。

注意

当内置采样器采样新参数时,会忽略失败的试验。因此,从采样器的角度来看,失败的试验被视为已删除。

参数:
  • study (Study) – 目标研究对象。

  • trial (FrozenTrial) – 目标试验对象。修改此对象前请先复制。

  • param_name (str) – 被采样参数的名称。

  • param_distribution (distributions.BaseDistribution) – 分布对象,指定采样算法的先验和/或尺度。

返回:

一个参数值。

返回类型:

Any

sample_relative(study, trial, search_space)[源代码]

在给定的搜索空间中采样参数。

此方法在每次试验开始时调用一次,即 justo 在目标函数评估之前。此方法适用于使用参数之间关系的采样算法,例如高斯过程和 CMA-ES。

注意

当内置采样器采样新参数时,会忽略失败的试验。因此,从采样器的角度来看,失败的试验被视为已删除。

参数:
返回:

一个包含参数名称和值的字典。

返回类型:

dict[str, Any]