调参与优化模型参数
现在是时候在模型上尝试不同的参数,看看效果如何了!
上一练习中您编写的 create_model() 函数已经可以直接使用。
由于拟合 RandomizedSearchCV 对象会花费太长时间,本题的结果会通过 show_results() 函数打印出来。
您可以在控制台中自行尝试在完成其余部分后运行 random_search.fit(X,y) 来验证确实可行,但很可能会导致本练习超时(如果要尝试,请先复制您的代码,否则可能会丢失进度!)。
在构建 KerasClassifier 对象时,您无需使用可选参数 epochs 和 batch_size,因为您会把它们作为 params 传给随机搜索,这样已经可以正常工作。
本练习是课程的一部分
Keras 深度学习入门
练习说明
- 从
tensorflow.keras的 scikit_learn 封装中导入KerasClassifier。 - 在实例化
KerasClassifier时使用您的create_model函数。 - 将
'relu'和'tanh'设为activation,将 32、128、256 设为batch_size,将 50、100、200 设为epochs,并将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()