KerasTuner:超参数调优 / API 文档 / KerasTuner 超模型

KerasTuner 超模型

HyperModel 基类使搜索空间更好地封装以便共享和重用。一个 HyperModel 子类只需要实现一个 build(self, hp) 方法,该方法使用 hp 参数来定义超参数并创建一个 keras.Model,并返回模型实例。一个简单的代码示例如下。

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 实例作为搜索空间传递给 Tuner

tuner = kt.RandomSearch(
    MyHyperModel(),
    objective='val_loss',
    max_trials=5)

还有一些内置的 HyperModel 子类(例如 HyperResNetHyperXception)供用户直接使用,这样用户就不需要编写自己的搜索空间。

tuner = kt.RandomSearch(
    HyperResNet(input_shape=(28, 28, 1), classes=10),
    objective='val_loss',
    max_trials=5)

基本的 HyperModel 类

HyperEfficientNet

HyperImageAugment

HyperResNet

HyperXception