HyperModel
类keras_tuner.HyperModel(name=None, tunable=True)
定义模型的搜索空间。
搜索空间是模型的集合。build
函数将使用给定的 HyperParameters
对象构建空间中的一个模型。
用户应继承 HyperModel
类,通过重写 build()
方法来定义其搜索空间,该方法创建并返回 Keras 模型。另外,您还可以重写 fit()
方法以自定义模型的训练过程。
示例
在 build()
方法中,您可以使用超参数创建模型。
class MyHyperModel(kt.HyperModel):
def build(self, hp):
model = keras.Sequential()
model.add(keras.layers.Dense(
hp.Choice('units', [8, 16, 32]),
activation='relu'))
model.add(keras.layers.Dense(1, activation='relu'))
model.compile(loss='mse')
return model
当重写 HyperModel.fit()
方法时,如果您使用 model.fit()
来训练您的模型,该方法返回训练历史记录,您可以直接返回它。您可以使用 hp
来指定要调优的任何超参数。
class MyHyperModel(kt.HyperModel):
def build(self, hp):
...
def fit(self, hp, model, *args, **kwargs):
return model.fit(
*args,
epochs=hp.Int("epochs", 5, 20),
**kwargs)
如果您有自定义的训练过程,您可以将目标值作为浮点数返回。
如果您想跟踪更多指标,您可以返回一个包含要跟踪指标的字典。
class MyHyperModel(kt.HyperModel):
def build(self, hp):
...
def fit(self, hp, model, *args, **kwargs):
...
return {
"loss": loss,
"val_loss": val_loss,
"val_accuracy": val_accuracy
}
参数
False
,则这些参数的搜索空间必须提前定义,否则将使用默认值。默认为 True。build
方法HyperModel.build(hp)
构建一个模型。
参数
HyperParameters
实例。返回值
一个模型实例。