Distributions

class optuna.distributions.UniformDistribution(low, high)[源代码]

线性域的均匀分布。

一般情况下,该对象由 suggest_uniform() 进行实例化,然后被传递到 samplers.

low

该分布的取值范围下界。其中 low 值是包含在取值范围内的。

high

该分布的取值范围上界。其中 high 值是不包含在取值范围内的。

single()[源代码]

测试该分布范围内是否仅包含一个可能的值。

如果该方法返回 True, 则 samplers 总从该分布中取同一个值。

返回

当分布的范围内仅包含一个值时该值为 True, 否则为 False

class optuna.distributions.LogUniformDistribution(low, high)[源代码]

Log 均匀分布

该对象由 suggest_loguniform() 进行实例化之后会被传递到 samplers

low

该分布的取值范围下界。其中 low 值是包含在取值范围内的。

high

该分布的取值范围上界。其中 high 值是不包含在取值范围内的。

single()[源代码]

测试该分布范围内是否仅包含一个可能的值。

如果该方法返回 True, 则 samplers 总从该分布中取同一个值。

返回

当分布的范围内仅包含一个值时该值为 True, 否则为 False

class optuna.distributions.DiscreteUniformDistribution(low: float, high: float, q: float)[源代码]

线性离散均匀分布

该对象由 suggest_discrete_uniform() 进行实例化之后会被传递到 samplers

注解

如果区间 \([\mathsf{low}, \mathsf{high}]\) 不能被步数 \(q\) 整除的话, 值 \(\mathsf{high}\) 会被替代成 \(k q + \mathsf{low} \lt \mathsf{high}\) 的最大值,其中 \(k\) 是整数。

low

该分布的取值范围下界。其中 low 值是包含在取值范围内的。

high

该分布的取值范围上界。其中 high 值是包含在取值范围内的。

q

离散化步骤。

single()[源代码]

测试该分布范围内是否仅包含一个可能的值。

如果该方法返回 True, 则 samplers 总从该分布中取同一个值。

返回

当分布的范围内仅包含一个值时该值为 True, 否则为 False

class optuna.distributions.IntUniformDistribution(low: int, high: int, step: int = 1)[源代码]

整数上的均匀分布。

该对象由 suggest_int() 进行实例化之后会被传递到 samplers

注解

如果区间 \([\mathsf{low}, \mathsf{high}]\) 不能被步数 \(\mathsf{step}\) 整除的话, 值 \(\mathsf{high}\) 会被替代成 \(k \times \mathsf{step} + \mathsf{low} \lt \mathsf{high}\) 的最大值,其中 \(k\) 是整数。

low

该分布的取值范围下界。其中 low 值是包含在取值范围内的。

high

该分布的取值范围上界。其中 high 值是包含在取值范围内的。

step

取值间隔步长。

single()[源代码]

测试该分布范围内是否仅包含一个可能的值。

如果该方法返回 True, 则 samplers 总从该分布中取同一个值。

返回

当分布的范围内仅包含一个值时该值为 True, 否则为 False

class optuna.distributions.IntLogUniformDistribution(low: int, high: int, step: int = 1)[源代码]

Log 操作后的整数均匀分布。

该对象由 suggest_int() 进行实例化之后会被传递到 samplers

注解

如果区间 \([\mathsf{low}, \mathsf{high}]\) 不能被步数 \(\mathsf{step}\) 整除的话, 值 \(\mathsf{high}\) 会被替代成 \(k \times \mathsf{step} + \mathsf{low} \lt \mathsf{high}\) 的最大值,其中 \(k\) 是整数。

low

该分布的取值范围下界。其中 low 值是包含在取值范围内的。

high

该分布的取值范围上界。其中 high 值是包含在取值范围内的。

step

取值间隔步长。

single()[源代码]

测试该分布范围内是否仅包含一个可能的值。

如果该方法返回 True, 则 samplers 总从该分布中取同一个值。

返回

当分布的范围内仅包含一个值时该值为 True, 否则为 False

class optuna.distributions.CategoricalDistribution(choices)[源代码]

分类分布。

该对象由 suggest_categorical() 进行实例化之后会被传递到 samplers

参数

choices -- 可选参数值

注解

不是所有类型的参数都一定能和optuna的存储引擎兼容,请尽量使用 None, bool, int, float 或者 str.

choices

可选参数值

single()[源代码]

测试该分布范围内是否仅包含一个可能的值。

如果该方法返回 True, 则 samplers 总从该分布中取同一个值。

返回

当分布的范围内仅包含一个值时该值为 True, 否则为 False

optuna.distributions.distribution_to_json(dist)[源代码]

将分布序列化成json格式

参数

dist -- 待序列化的分布

返回

输出的 JSON 文件名

optuna.distributions.json_to_distribution(json_str)[源代码]

将 JSON 格式的分布反序列化

参数

json_str -- 已序列化的分布

返回

已反序列化的分布

optuna.distributions.check_distribution_compatibility(dist_old, dist_new)[源代码]

检查两分布的兼容性

注意,该方法不应由 optuna 用户来调用

参数
  • dist_old -- 从存储内容中恢复的分布

  • dist_new -- 新添加到存储内容的分布

返回

如果是 True 的话,表明这些分布是兼容的,否则不兼容。