通过Keras的包装类,借助Scikit-Learn的网格搜索算法评估神经网络模型的不同配置,并找到最佳评估性能的参数组合。
在Scikit-Learn中的GridSearchCV需要一个字典类型的字段作为需要调参的参数,默认采用3折交叉验证的方法来评估算法。
这里有四个参数需要调参,因此会产生4*3个模型。
代码如下:
"""
通过Scikit-learn中的GridSearchCV进行自动调参
耗时很久,很多情况下不常用
"""
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
from sklearn.model_selection import GridSearchCV
from keras.wrappers.scikit_learn import KerasClassifier
#构建模型
#这里的参数必须要有init才可以!!!不然会报错。
def create_model(optimizer='rmsprop', init='glorot_uniform'):
#构建模型
model = Sequential()
model.add(Dense(12, input_dim=8, kernel_initializer=init, activation='relu'))
model.add(Dense(8, kernel_initializer=init, activation='relu'))
model.add(Dense(1, kernel_initializer=init, activation='sigmoid