始める無料で始める

モデルパラメータのチューニング

いよいよ、モデルにさまざまなパラメータを試してパフォーマンスを確認してみましょう。

前の演習で作成した create_model() 関数は、すぐに使える状態です。

RandomizedSearchCV オブジェクトの学習は時間がかかるため、本来得られる結果は show_results() 関数内で表示されるようになっています。 すべて作り終えたあとに、コンソールで自分で random_search.fit(X,y) を試して動作確認しても構いませんが、その場合は演習のタイムアウトになる可能性が高いです(試すときはコードを先にコピーしておくか、進捗を失うおそれがあります)。

KerasClassifier オブジェクトを作成するときに、任意指定の epochsbatch_size を設定する必要はありません。これらは random search に params として渡しており、すでにその方法で動作します。

この演習はコースの一部です

Kerasで学ぶIntroduction to Deep Learning

コースを見る

演習の手順

  • tensorflow.keras の scikit_learn ラッパーから KerasClassifier をインポートします。
  • KerasClassifier のインスタンス化には、作成済みの create_model 関数を使います。
  • activation は 'relu' と 'tanh'、batch_size は 32、128、256、epochs は 50、100、200、learning_rate は 0.1、0.01、0.001 を指定します。
  • RandomizedSearchCV を作成するときに、変換した model と選んだ params を渡します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import KerasClassifier from tensorflow.keras scikit learn wrappers
from tensorflow.keras.wrappers.____ import ____

# Create a KerasClassifier
model = KerasClassifier(build_fn = ____)

# Define the parameters to try out
params = {'activation': [____, ____], 'batch_size': [____, ____, ____], 
          'epochs': [____, ____, ____], 'learning_rate': [____, ____, ____]}

# Create a randomize search cv object passing in the parameters to try
random_search = RandomizedSearchCV(____, param_distributions = ____, cv = KFold(3))

# Running random_search.fit(X,y) would start the search,but it takes too long! 
show_results()
コードを編集して実行