KerasTuner 是一個易於使用、可擴展的超參數優化框架,可解決超參數搜尋的痛點。透過「define-by-run」語法輕鬆配置您的搜尋空間,然後利用可用的搜尋演算法之一,為您的模型找到最佳的超參數值。KerasTuner 內建了貝氏優化(Bayesian Optimization)、Hyperband 和隨機搜尋(Random Search)演算法,並且設計成方便研究人員擴展,以便實驗新的搜尋演算法。
安裝最新版本
pip install keras-tuner --upgrade
您也可以在我們的 GitHub 儲存庫 中查看其他版本。
匯入 KerasTuner 和 TensorFlow
import keras_tuner
import keras
編寫一個函式來建立並傳回 Keras 模型。在模型建立期間,使用 hp
參數定義超參數。
def build_model(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
初始化一個調整器(這裡使用 RandomSearch
)。我們使用 objective
來指定選擇最佳模型的目標,並使用 max_trials
來指定要嘗試的不同模型數量。
tuner = keras_tuner.RandomSearch(
build_model,
objective='val_loss',
max_trials=5)
開始搜尋並取得最佳模型
tuner.search(x_train, y_train, epochs=5, validation_data=(x_val, y_val))
best_model = tuner.get_best_models()[0]
若要瞭解更多關於 KerasTuner 的資訊,請查看入門指南。
如果 KerasTuner 對您的研究有所幫助,我們感謝您的引用。以下是 BibTeX 條目
@misc{omalley2019kerastuner,
title = {KerasTuner},
author = {O'Malley, Tom and Bursztein, Elie and Long, James and Chollet, Fran\c{c}ois and Jin, Haifeng and Invernizzi, Luca and others},
year = 2019,
howpublished = {\url{https://github.com/keras-team/keras-tuner}}
}