Keras tunerの使い方
Keras Tunerは、TensorFlowのモデルハイパーパラメータの最適化ライブラリです。以下は、Keras Tunerを使用してモデルを構築し、ハイパーパラメータの最適化を行う一般的な手順です。
- ライブラリをインストールする
pip install keras-tuner
2. ライブラリをインポートする
import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers from kerastuner.tuners import RandomSearch
3. モデルを定義する
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
4. ハイパーパラメータの探索範囲を設定する
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を最大化するように指定しています。
5. 探索を実行する
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の一般的な使用方法です。ハイパーパラメータの探索方法や探索範囲は、問題に応じて適宜設定する必要があります。
ディスカッション
コメント一覧
まだ、コメントがありません