KerasTuner

KerasTuner

收藏

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

如果 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}}
}