使用GridSearchCV进行神经网络的超参数调整

问题描述

我正在尝试使用用于人工神经网络的GridSearchCV执行超参数调整。但是,我无法确定下面的脚本出了什么问题。它给了我以下错误: ann.compile(optimizer ='adam',loss ='mean_squared_error') ^ SyntaxError:语法无效

# Use scikit-learn to grid search the number of neurons
from sklearn.model_selection import GridSearchCV
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.wrappers.scikit_learn import KerasRegressor
from keras.constraints import maxnorm
# Function to create model,required for KerasClassifier
def create_model(neurons=1,activation='relu'):
    # create model
    ann = Sequential()
    ann.add(Dense(units = neurons,activation = activation))
    ann.add(Dense(units = 1)
    # Compile model
    ann.compile(optimizer = 'adam',loss = 'mean_squared_error')
    return ann
# fix random seed for reproducibility
np.random.seed(0)
# create model
ann = KerasRegressor(build_fn = create_model,epochs = 100,batch_size = 10,verbose = 0)
# define the grid search parameters
parameters = {'neurons': [5,10,15,20,25,30,35,40,45,50,55,60],'activation': ['softmax','softplus','softsign','relu','tanh','sigmoid','hard_sigmoid','linear']}
grid = GridSearchCV(estimator = ann,param_grid = parameters,n_jobs = -1,cv=3)
grid_result = grid.fit(X1_train,y1_train)
# summarize results
print("Best: %f using %s" % (grid_result.best_score_,grid_result.best_params_))
means = grid_result.cv_results_['mean_test_score']
stds = grid_result.cv_results_['std_test_score']
params = grid_result.cv_results_['params']
for mean,stdev,param in zip(means,stds,params):
    print("%f (%f) with: %r" % (mean,param))

非常感谢,我真的需要帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)