調整模型參數
現在輪到你在模型上嘗試不同的參數,看看表現如何!
你在上一個練習建立的 create_model() 函式已可直接使用。
由於擬合 RandomizedSearchCV 物件會花太久時間,你會在 show_results() 函式中看到已列印好的結果。
在主控台中,你也可以在完成其他部分後自行嘗試 random_search.fit(X,y) 來確認確實可行,但很可能會讓此練習逾時(如果要嘗試,請先複製你的程式碼,否則可能會遺失進度!)。
在建立 KerasClassifier 物件時,你不需要使用選用參數 epochs 與 batch_size,因為你會把它們當作 params 傳入隨機搜尋,這樣就能正常運作了。
本練習屬於課程
Keras 深度學習入門
練習說明
- 從
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()