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
子類別(例如 HyperResNet
、HyperXception
),使用者可以直接使用,因此使用者不需要編寫自己的搜尋空間。
tuner = kt.RandomSearch(
HyperResNet(input_shape=(28, 28, 1), classes=10),
objective='val_loss',
max_trials=5)