【问题标题】:ValueError: The model is not configured to compute accuracyValueError:模型未配置为计算准确性
【发布时间】:2019-11-21 13:29:58
【问题描述】:

使用此代码时,我从一些教程中得到了错误,指出模型未配置为计算准确度,我应该通过准确度,奇怪的部分是我已经通过了 metrics = ['accuracy']

我搜索了很多,我看到的所有代码都可以正常工作,除了我的。

评估人工神经网络

from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import cross_val_score
from tensorflow.python.keras.models import Sequential #Used to initialize the NN
from tensorflow.python.keras.layers import Dense #Used to create the layers in the ANN

def build_classifier():
    classifier = Sequential()
    classifier.add(Dense(units = 6, kernel_initializer = 'uniform', activation = 'relu',input_dim = 11))
    classifier.add(Dense(units= 6, kernel_initializer = 'uniform', activation = 'relu'))
    classifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))
    classifier.compile(optimizer='adam', loss='binary_crossentropy', metrics= ['accuracy'])
    return classifier
# Needs to be revised from evaluting video in the course if needed
classifier = KerasClassifier(build_fn = build_classifier, batch_size = 10, nb_epoch = 100)
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = 10, n_jobs = -1)

我希望输出是准确度向量,而不是我得到:

ValueError:模型未配置为计算准确性。您应该将metrics=["accuracy"] 传递给model.compile() 方法。

【问题讨论】:

  • 你能试试metrics=['acc']吗?
  • @MaximilianPeters 我现在试过了,我没有得到同样的错误,而是模型训练了 2 秒(这几乎是使用 fit 方法训练模型所需时间的 1/10 ) 而且准确率很低
  • 你能分享你的数据集或其中的一部分吗?
  • classifier.model.metrics_names 带给你什么?

标签: python tensorflow keras scikit-learn


【解决方案1】:

将 metrics=['accuracy'] 中的参数更改为 metrics=['acc'] 对我有用。

问候, 约瑟夫

【讨论】:

  • 也为我工作。指标“val_accuracy”也已更改为“val_acc”!
  • 我相信它已经随着版本 2.0 发生了变化,所以它确实是在更改为 acc。 @EliadL 的提示也很有帮助:classifier.model.metrics_names
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 2018-10-19
  • 2021-05-10
  • 2020-05-07
  • 1970-01-01
  • 2016-03-07
  • 1970-01-01
  • 2012-07-10
相关资源
最近更新 更多