Keras 3 API 文件 / KerasTuner / 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