У меня есть этот код, который строит модель и обучает ее.
model = Sequential()
model.add(Convolution2D(32, kernel_size = (3,3),padding = 'same' ,input_shape= input_shape))
model.add(Activation('linear'))
model.add(Convolution2D(32, kernel_size = (3,3)))
model.add(MaxPooling2D(pool_size=(2, 2),padding='same' ))
model.add(Dropout(0.5))
model.add(Convolution2D(64, kernel_size = (3,3)))
model.add(Activation('linear'))
model.add(Convolution2D(64, kernel_size = (3,3)))
model.add(MaxPooling2D(pool_size=(2, 2),padding='same' ))
model.add(Dropout(0.5))
model.add(Convolution2D(128, kernel_size = (3,3)))
model.add(Activation('linear'))
model.add(Convolution2D(128, kernel_size = (3,3), padding = 'same' ))
model.add(Activation('linear'))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(10))
model.add(Dropout(0.5))
model.add(Activation('linear'))
model.add(Dense(numclasses))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop',metrics=["accuracy"])
hist = model.fit(X_train, y_train, batch_size=32, nb_epoch=30, verbose=1, validation_data=(X_test, y_test), callbacks = callbacks_list)
Итак, у меня есть 9000 изображений, которые я обучил, как показано ниже, но как вы Я вижу, есть несколько признаков обобщения, я думаю, если нет, пожалуйста, поправьте меня
Но в любом случае я пытаюсь реализовать перекрестную валидацию K-Fold .. я думаю, есть много разных способов сделать это, но я выбрал этот подход, так как думал, что это будет самым простым ..
#Applying K-Fold Cross Validation
accuracy = cross_val_score(estimator=model, X = X_train, y = y_train, cv=10)
accuracy.mean()
accuracy.std()
#Predicting the test set results
y_pred = classifier.predict(X_test)
I реализовал другие способы сделать K-Fold, но я продолжаю получать эту ошибку
TypeError Traceback (most recent call last)
<ipython-input-181-765b62be4342> in <module>
1 #Applying K-Fold Cross Validation
2
----> 3 accuracy = cross_val_score(estimator=model, X = X_train, y = y_train, cv=10)
4 accuracy.mean()
5 accuracy.std()
~/anaconda3/envs/tensorflowenv/lib/python3.7/site-packages/sklearn/model_selection/_validation.py in cross_val_score(estimator, X, y, groups, scoring, cv, n_jobs, verbose, fit_params, pre_dispatch, error_score)
382 """
383 # To ensure multimetric format is not supported
--> 384 scorer = check_scoring(estimator, scoring=scoring)
385
386 cv_results = cross_validate(estimator=estimator, X=X, y=y, groups=groups,
~/anaconda3/envs/tensorflowenv/lib/python3.7/site-packages/sklearn/metrics/scorer.py in check_scoring(estimator, scoring, allow_none)
293 "If no scoring is specified, the estimator passed should "
294 "have a 'score' method. The estimator %r does not."
--> 295 % estimator)
296 elif isinstance(scoring, Iterable):
297 raise ValueError("For evaluating multiple scores, use "
TypeError: If no scoring is specified, the estimator passed should have a 'score' method. The estimator <tensorflow.python.keras.engine.sequential.Sequential object at 0x7f0ec5431860> does not.
Если кто-то знает, как решить эту проблему, пожалуйста, помогите .. спасибо!