我试着调整超参数def create_model():
# create model
model = Sequential()
model.add(Dense(12, input_dim=10, kernel_initializer='uniform', activation='relu'))
model.add(Dense(4, kernel_initializer='uniform', activation='sigmoid'))
# Compile model
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
return model
# create model
model = KerasClassifier(build_fn=create_model, verbose=0)
cv = KFold(n_splits=5, shuffle=True, random_state=1)
# grid search epochs, batch size and optimizer
epochs = [ 100, 150, 170, 200, 250]
batches = [ 5, 10, 20, 25, 30]
param_grid = dict(epochs=epochs, batch_size=batches)
grid = GridSearchCV(estimator=model, param_grid=param_grid, cv = cv)
然后适合
^{pr2}$
我得到了grid_result.best_params_, grid_result.best_score_
({'batch_size': 10, 'epochs': 150}, 0.31568432165371191)
在那之后,我使都一样并且得到grid_result.best_params_, grid_result.best_score_
({'batch_size': 20, 'epochs': 100}, 0.31368631761629029)
有什么问题吗?数据集大小X_train.shape, y_train.shape
((1001, 10), (1001, 4))
我们一定会得到相同的结果