Получение ошибки атрибута в классификаторе KerasPython

Программы на Python
Ответить
Anonymous
 Получение ошибки атрибута в классификаторе Keras

Сообщение Anonymous »

получение ошибки атрибута при передаче значений в классификатор keras

Код: Выделить всё

from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
from sklearn.model_selection import cross_val_score
from scikeras.wrappers import KerasClassifier

def create_model():
model = Sequential([
Dense(32,input_dim=16,kernel_initializer='normal',activation='relu'),
Dense(16,kernel_initializer='normal',activation='relu'),
Dense(1,kernel_initializer='normal',activation='sigmoid')
])
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
return model

estimator = KerasClassifier(model=create_model,epochs=100,verbose=0)

cv_scores = cross_val_score(estimator, all_features, all_classes, cv=10)
print("Mean cross-validation accuracy:", cv_scores.mean())
передача значений в cross_val_score(estimator, all_features, all_classes, cv=10). Не уверен, есть ли какие-либо изменения в полях ввода.
Я получаю здесь ошибку атрибута: cv_scores = cross_val_score(estimator, all_features, all_classes, cv=10)
Полное сообщение об ошибке:

------------------------- -------------------------------------------------- Обратная трассировка AttributeError (большинство недавний вызов
последний) Ячейка In[38], строка 18
13 возвращает модель
16 оценщик = KerasClassifier(model=create_model,epochs=100,verbose=0)
-- -> 18 cv_scores = cross_val_score(estimator, all_features, all_classes, cv=10)
19 print("Среднее значение точность перекрестной проверки:", cv_scores.mean())
Файл
~\anaconda3\Lib\site-packages\sklearn\utils_param_validation.py:216,
в validate_params..decorator..wrapper(*args,
**kwargs)
210 попробуйте:
211 с config_context(
212 Skip_parameter_validation=(
213 prefer_skip_nested_validation или global_skip_validation
214 )
215 ):
--> 216 return func(*args, **kwargs)217, за исключением InvalidParameterError как e:
218 # Когда функция является просто оболочкой оценщика, мы разрешаем
219 # функции делегировать проверку оценщику, но мы заменяем
220 # имя оценщика именем функции в сообщение об ошибке
221 #, чтобы избежать путаницы.
222 msg = re.sub(
223 r"параметр \w+ должен быть",
224 f"Параметр {func.qualname} должен быть",
225 str(e),
226 )
Файл
~\anaconda3\Lib\site-packages\sklearn\model_selection_validation.py:684,
в cross_val_score(оценщик, X, y, группы, оценка, cv, n_jobs,
verbose, params, pre_dispatch, error_score)
681 # Чтобы убедиться, что мультиметрический формат не поддерживается
682 Scorer = check_scoring(estimator, Scoring=scoring)
-- > 684 cv_results = cross_validate(
685 оценщик=оценщик,
686 X=X,
687 y=y,
688 groups=groups,
689 скоринг={"score": бомбардир},
690 cv=cv,
691 n_jobs=n_jobs,
692 verbose=verbose,
693 params=params,
694 pre_dispatch=pre_dispatch,
695 error_score=error_score,
696 )
697 return cv_results["test_score"]
Файл
~\anaconda3 \Lib\site-packages\sklearn\utils_param_validation.py:216,
в validate_params..decorator..wrapper(*args,
**kwargs)
210 попробуйте:
211 с config_context(
212 Skip_parameter_validation=(
213 предпочитаете_skip_nested_validation или global_skip_validation
214 )
215 ):
--> 216 return func(*args, **kwargs)
217 кроме InvalidParameterError as e:
218 # Когда функция является просто оболочкой оценщика, мы разрешаем
219 # функция делегирует проверку оценщику, но мы заменяем
220 # имя оценщика именем функции в ошибке
221 # сообщение, чтобы избежать путаницы.
222 msg = re.sub(
223 r"параметр \w+ должен быть",
224 f"параметр {func. qualname} должно быть",
225 str(e),
226 )
Файл
~\anaconda3\Lib\site-packages\sklearn\model_selection_validation.py:347,
in cross_validate(estimator, X, y, groups, Scoring, CV, n_jobs,
verbose, params, pre_dispatch , return_train_score, return_estimator,
return_indices, error_score)
345 X, y = indexable(X, y)
346 params = {}, если параметры равны None else params
--> 347 cv = check_cv(cv, y, classifier=is_classifier(estimator))
349 бомбардиров = check_scoring(
оценщик 350, Scoring=scoring, raise_exc=(error_score == "raise")
351 )
353 if _routing_enabled():
354 # Для оценщиков MetadataRouter создается в методах get_metadata_routing
355 #. Для этих методов маршрутизатора мы создаем маршрутизатор для использования на нем
356 #process_routing.
Файл ~\anaconda3\Lib\site-packages\sklearn\base .py:1237, в
is_classifier(estimator) 1230 alerts.warn( 1231

f"передача класса в {print(inspect.stack()[0][3])} устарел и
" 1232 "будет удален в версии 1.8. Вместо этого используйте экземпляр класса
.", 1233 FutureWarning, 1234. ) 1235
return getattr(estimator, "_estimator_type", None) == "classifier"
-> 1237 return get_tags(estimator).estimator_type == "classifier"
Файл ~\anaconda3\Lib\site-packages\sklearn\utils_tags.py:430, в
get_tags( estimator)
428 для класса в обратном порядке(type(estimator).mro()):
429 if "sklearn_tags" в vars(klass):
--> 430 sklearn_tags_provider[klass] = klass.sklearn_tags(estimator) # тип: ignore[attr-defined ]
431 class_order.append(klass)
432 elif "_more_tags" в vars(klass):
Файл ~\anaconda3\Lib\site-packages\sklearn\base.py:540, в
ClassifierMixin.sklearn_tags (self)
539 def sklearn_tags(self):
--> 540 тегов = super().sklearn_tags()
541 tags.estimator_type = "classifier"
542 tags.classifier_tags = ClassifierTags()


Подробнее здесь: https://stackoverflow.com/questions/793 ... classifier
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»