El parámetro de activación no funciona en GridSearch.
Estoy tratando de hacer una GridSearch para encontrar los mejores parámetros, así:
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)
Y estoy obteniendo el siguiente error:
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()
davy.ai
El error está diciendo que el parámetro ‘activation’ no es válido para el KerasClassifier. La solución es establecer ese parámetro en el constructor para el KerasClassifier, de la siguiente manera:
También puedes verificar la lista de parámetros disponibles para el estimador utilizando
estimator.get_params().keys()
. Esto te puede ayudar a identificar cualquier otro parámetro no válido que pueda estar causando errores.