#keras #grid-search
#keras #сетка-поиск
Вопрос:
Я пытаюсь сделать поиск по сетке для наилучших параметров, как это:
def MultiPerceptron(optimizer = 'adam', loss = 'binary_cross_entropy', kernel_initializer = 'random_uniform', activation = 'relu', units = 16): model = Sequential() model.add(InputLayer(30)) model.add(Dense(units = units, activation = activation, kernel_initializer = kernel_initializer)) model.add(Dense(units = units, activation = activation, kernel_initializer = kernel_initializer)) model.add(Dense(units = 1, activation = 'sigmoid')) model.compile(optimizer = optimizer, loss = loss, metrics =['binary_accuracy']) return model classifier = KerasClassifier(build_fn = MultiPerceptron, validation_split = 0.1, validation_batch_size = 50) param = {'batch_size': [10, 30], 'epochs': [50, 100], 'optimizer': ['adam', 'sgd'], 'loss': ['binary_crossentropy', 'hinge'], 'kernel_initializer': ['random_uniform', 'normal'], 'activation': ['relu', 'tanh'], 'units': [16, 8]} search = GridSearchCV(estimator = classifier, param_grid = param, scoring = 'accuracy', cv = 5) search = search.fit(x,y)
И я получаю следующую ошибку:
ValueError: Invalid parameter activation for estimator KerasClassifier. This issue can likely be resolved by setting this parameter in the KerasClassifier constructor: `KerasClassifier(activation=relu)` Check the list of available parameters with `estimator.get_params().keys()`
Ответ №1:
Я думаю, что они что-то изменили, потому что я мог заставить это работать только при передаче activation=relu
параметра KerasClassifier
.
Другие параметры там не нужны.