Я использую базовую c модель CNN для классификации моих данных. Размеры моих входных данных (325, 20, 244,244). Код, который я использовал, выглядит следующим образом:
model = Sequential()
model.add(Dense(2, activation='relu', input_shape=X_train.shape[1:]))
model.add(Dense(2, activation='sigmoid'))
optimizer = ['SGD', 'RMSprop', 'Adagrad', 'Adadelta', 'Adam', 'Adamax', 'Nadam']
epochs = [10, 50, 100]
param_grid = dict(epochs=epochs, optimizer=optimizer)
model.compile(loss='binary_crossentropy', metrics=['accuracy'])
grid = GridSearchCV(estimator=model, param_grid=param_grid, scoring='accuracy', n_jobs=-1, refit='boolean')
grid_result = grid.fit(X_train, Y_train, validation_data=(X_test, Y_test))
print("Best: %f using %s" % (grid_result.best_score_, grid_result.best_params_))
Вывод, который я получил:
grid_result = grid.fit(X_train, Y_train, validation_data=(X_test, Y_test))
Traceback (most recent call last):
File "<ipython-input-16-bb553189f3ee>", line 1, in <module>
grid_result = grid.fit(X_train, Y_train, validation_data=(X_test, Y_test))
File "C:\Users\Student\Anaconda3\lib\site-packages\sklearn\model_selection\_search.py", line 633, in fit
base_estimator = clone(self.estimator)
File "C:\Users\Student\Anaconda3\lib\site-packages\sklearn\base.py", line 60, in clone
% (repr(estimator), type(estimator)))
TypeError: Cannot clone object '<tensorflow.python.keras.engine.sequential.Sequential object at 0x0000025993610B08>' (type <class 'tensorflow.python.keras.engine.sequential.Sequential'>): it does not seem to be a scikit-learn estimator as it does not implement a 'get_params' methods.
Может кто-нибудь сказать, пожалуйста, что не так с кодом и как это может быть исправлено.