ValueError: Unknown optimizer: optimizer
ValueError: Unknown optimizer: optimizer
我想进行超参数调整,所以我应用了 gridsearchCV,但在拟合过程中出现了 ValueError
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import GridSearchCV
def build_classifier(optimizer):
ann = tf.keras.models.Sequential()
ann.add(tf.keras.layers.Dense(units = 6, activation = 'relu'))
ann.add(tf.keras.layers.Dense(units = 6, activation = 'relu'))
ann.add(tf.keras.layers.Dense(units = 1, activation = 'sigmoid')) #softmax in case of more than 2 classes
ann.compile(optimizer = 'optimizer', loss = 'binary_crossentropy', metrics = ['accuracy']) #categorical_crossentropy in case of categories > 2
return ann
ann = KerasClassifier(build_fn = build_classifier)
parameters = {'batch_size': [25,32],
'epochs' : [10,100],
'optimizer' : ['adam', 'rmsprop']}
grid_search = GridSearchCV(estimator = ann,
param_grid = parameters,
scoring = 'accuracy',
cv = 10)
grid_search = grid_search.fit(X_train, y_train)
而不是将 'optimizer'
字符串传递给 compile()
传递函数参数 optimizer
.
import tensorflow as tf
from sklearn.model_selection import GridSearchCV
def build_classifier(optimizer):
ann = tf.keras.models.Sequential()
ann.add(tf.keras.layers.Dense(units = 6, activation = 'relu'))
ann.add(tf.keras.layers.Dense(units = 6, activation = 'relu'))
ann.add(tf.keras.layers.Dense(units = 1, activation = 'sigmoid'))
ann.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])
return ann
ann = tf.keras.wrappers.scikit_learn.KerasClassifier(build_fn = build_classifier)
parameters = {'batch_size': [25,32],
'epochs': [10, 100],
'optimizer': ['Adam', 'RMSprop']}
grid_search = GridSearchCV(estimator=ann,
param_grid=parameters,
scoring= 'accuracy',
cv=10)
grid_search = grid_search.fit(X, y)
我想进行超参数调整,所以我应用了 gridsearchCV,但在拟合过程中出现了 ValueError
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import GridSearchCV
def build_classifier(optimizer):
ann = tf.keras.models.Sequential()
ann.add(tf.keras.layers.Dense(units = 6, activation = 'relu'))
ann.add(tf.keras.layers.Dense(units = 6, activation = 'relu'))
ann.add(tf.keras.layers.Dense(units = 1, activation = 'sigmoid')) #softmax in case of more than 2 classes
ann.compile(optimizer = 'optimizer', loss = 'binary_crossentropy', metrics = ['accuracy']) #categorical_crossentropy in case of categories > 2
return ann
ann = KerasClassifier(build_fn = build_classifier)
parameters = {'batch_size': [25,32],
'epochs' : [10,100],
'optimizer' : ['adam', 'rmsprop']}
grid_search = GridSearchCV(estimator = ann,
param_grid = parameters,
scoring = 'accuracy',
cv = 10)
grid_search = grid_search.fit(X_train, y_train)
而不是将 'optimizer'
字符串传递给 compile()
传递函数参数 optimizer
.
import tensorflow as tf
from sklearn.model_selection import GridSearchCV
def build_classifier(optimizer):
ann = tf.keras.models.Sequential()
ann.add(tf.keras.layers.Dense(units = 6, activation = 'relu'))
ann.add(tf.keras.layers.Dense(units = 6, activation = 'relu'))
ann.add(tf.keras.layers.Dense(units = 1, activation = 'sigmoid'))
ann.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])
return ann
ann = tf.keras.wrappers.scikit_learn.KerasClassifier(build_fn = build_classifier)
parameters = {'batch_size': [25,32],
'epochs': [10, 100],
'optimizer': ['Adam', 'RMSprop']}
grid_search = GridSearchCV(estimator=ann,
param_grid=parameters,
scoring= 'accuracy',
cv=10)
grid_search = grid_search.fit(X, y)