HyperParameters
类keras_tuner.HyperParameters()
用于超参数空间和当前值的容器。
可以将 HyperParameters
实例作为参数传递给 HyperModel.build(hp)
以构建模型。
为了防止用户依赖于非活动的超参数值,HyperParameters.values
中只应包含活动的超参数值。
属性
HyperParameter
对象列表。Boolean
方法HyperParameters.Boolean(name, default=False, parent_name=None, parent_values=None)
在 True 和 False 之间进行选择。
参数
HyperParameter
实例的名称必须唯一。HyperParameter
的名称,用作激活当前 HyperParameter
的条件。HyperParameter
值列表,用作激活当前 HyperParameter
的条件。返回值
超参数的值,如果超参数不活动,则为 None。
Choice
方法HyperParameters.Choice(
name, values, ordered=None, default=None, parent_name=None, parent_values=None
)
从一组预定义的可能值中选择一个值。
参数
HyperParameter
实例的名称必须唯一。True
。对于任何其他值,必须为 False
。values
中的一个选项)values
中的第一个条目。HyperParameter
的名称,用作激活当前 HyperParameter
的条件。HyperParameter
值列表,用作激活当前 HyperParameter
的条件。返回值
超参数的值,如果超参数不活动,则为 None。
Fixed
方法HyperParameters.Fixed(name, value, parent_name=None, parent_values=None)
固定、不可调的值。
参数
HyperParameter
实例的名称必须唯一。HyperParameter
的名称,用作激活当前 HyperParameter
的条件。HyperParameter
值列表,用作激活当前 HyperParameter
的条件。返回值
超参数的值,如果超参数不活动,则为 None。
Float
方法HyperParameters.Float(
name,
min_value,
max_value,
step=None,
sampling="linear",
default=None,
parent_name=None,
parent_values=None,
)
浮点值超参数。
示例 #1
hp.Float(
"image_rotation_factor",
min_value=0,
max_value=1)
区间 [0, 1] 中的所有值都有相等的被采样概率。
示例 #2
hp.Float(
"image_rotation_factor",
min_value=0,
max_value=1,
step=0.2)
step
是样本之间的最小距离。可能的取值为 [0, 0.2, 0.4, 0.6, 0.8, 1.0]。
示例 #3
hp.Float(
"learning_rate",
min_value=0.001,
max_value=10,
step=10,
sampling="log")
当 sampling="log"
时,step
在样本之间相乘。可能的取值为 [0.001, 0.01, 0.1, 1, 10]。
参数
HyperParameter
实例的名称必须唯一。sampling="linear"
,则它是两个样本之间最小的增量。如果 sampling="log"
,则它是两个样本之间最小的乘数。sampling
参数决定如何将值投影到 [min_value, max_value] 范围内。
min_value
。HyperParameter
的名称,用作激活当前 HyperParameter
的条件。HyperParameter
值列表,用作激活当前 HyperParameter
的条件。返回值
超参数的值,如果超参数不活动,则为 None。
Int
方法HyperParameters.Int(
name,
min_value,
max_value,
step=None,
sampling="linear",
default=None,
parent_name=None,
parent_values=None,
)
整数超参数。
请注意,与 Python 的 range
函数不同,max_value
包含在此参数可以取的可能值中。
示例 #1
hp.Int(
"n_layers",
min_value=6,
max_value=12)
可能的取值为 [6, 7, 8, 9, 10, 11, 12]。
示例 #2
hp.Int(
"n_layers",
min_value=6,
max_value=13,
step=3)
step
是样本之间的最小距离。可能的取值为 [6, 9, 12]。
示例 #3
hp.Int(
"batch_size",
min_value=2,
max_value=32,
step=2,
sampling="log")
当 sampling="log"
时,step
在样本之间相乘。可能的取值为 [2, 4, 8, 16, 32]。
参数
HyperParameter
实例的名称必须唯一。sampling="linear"
,则它是两个样本之间最小的增量。如果 sampling="log"
,则它是两个样本之间最小的乘数。sampling
参数决定如何将值投影到 [min_value, max_value] 范围内。
min_value
。HyperParameter
的名称,用作激活当前 HyperParameter
的条件。HyperParameter
值列表,用作激活当前 HyperParameter
的条件。返回值
超参数的值,如果超参数不活动,则为 None。
conditional_scope
方法HyperParameters.conditional_scope(parent_name, parent_values)
打开一个作用域以创建条件超参数。
在此作用域下创建的所有 HyperParameter
仅在 parent_name
指定的父 HyperParameter
等于 parent_values
中传递的值之一时才处于活动状态。
当条件不满足时,在此作用域下创建 HyperParameter
将注册 HyperParameter
,但将返回 None
而不是具体的值。
请注意,在此作用域下的任何 Python 代码都将执行,无论条件是否满足。
此功能用于 Tuner
收集有关搜索空间和当前试验的更多信息。它对模型选择特别有用。如果父 HyperParameter
用于模型选择,则模型中的 HyperParameter
仅在选择模型时才处于活动状态,可以使用 conditional_scope
来实现。
示例
def MyHyperModel(HyperModel):
def build(self, hp):
model = Sequential()
model.add(Input(shape=(32, 32, 3)))
model_type = hp.Choice("model_type", ["mlp", "cnn"])
with hp.conditional_scope("model_type", ["mlp"]):
if model_type == "mlp":
model.add(Flatten())
model.add(Dense(32, activation='relu'))
with hp.conditional_scope("model_type", ["cnn"]):
if model_type == "cnn":
model.add(Conv2D(64, 3, activation='relu'))
model.add(GlobalAveragePooling2D())
model.add(Dense(10, activation='softmax'))
return model
参数
HyperParameter
的名称,用作激活当前 HyperParameter
的条件。HyperParameter
值列表,用作激活当前 HyperParameter
的条件。get
方法HyperParameters.get(name)
返回此超参数集的当前值。