Keras tunerの使い方
Keras Tunerは、TensorFlowのモデルハイパーパラメータの最適化ライブラリです。以下は、Keras Tunerを使用してモデルを構築し、ハイパーパラメータの最適化を行う一般的な手順です。
- ライブラリをインストールする
pip install keras-tuner- ライブラリをインポートする
import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layersfrom kerastuner.tuners import RandomSearch- モデルを定義する
def build_model(hp): model = keras.Sequential() model.add(layers.Dense(units=hp.Int('units', min_value=32, max_value=512, step=32), activation='relu')) model.add(layers.Dense(10, activation='softmax')) model.compile(optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])), loss='sparse_categorical_crossentropy', metrics=['accuracy']) return model- ハイパーパラメータの探索範囲を設定する
tuner = RandomSearch( build_model, objective='val_accuracy', max_trials=5, executions_per_trial=3, directory='my_dir', project_name='helloworld')上記の例では、最適化対象のモデルとして、build_model関数が定義されています。hp.Int関数により、unitsというパラメータについて、32から512までの範囲で、32単位で探索するように設定しています。また、hp.Choice関数により、learning_rateというパラメータについて、[1e-2, 1e-3, 1e-4]のいずれかを採用するように設定しています。RandomSearchクラスは、ランダムにハイパーパラメータの値を選択し、探索を行います。objective引数には、最適化の対象となる指標を指定します。この例では、検証データのaccuracyを最大化するように指定しています。
- 探索を実行する
tuner.search(x_train, y_train, epochs=5, validation_data=(x_val, y_val))上記の例では、searchメソッドにより、探索を実行しています。x_trainおよびy_trainは、トレーニングデータの入力と出力を指定します。epochs引数には、トレーニングのエポック数を指定します。validation_data引数には、検証データの入力と出力を指定します。探索が完了すると、最適なハイパーパラメータの組み合わせを出力することができます。
tuner.results_summary()最適なハイパーパラメータを含む情報が表示されます。
以上が、Keras Tunerの一般的な使用方法です。ハイパーパラメータの探索方法や探索範囲は、問題に応じて適宜設定する必要があります。