【问题标题】:Getting an error TypeError: cannot unpack non-iterable float object收到错误 TypeError: cannot unpack non-iterable float object
【发布时间】:2021-09-24 16:20:50
【问题描述】:

我想评估我的 ML 模型,但出现此错误:

TypeError: 无法解压不可迭代的浮动对象

我的代码如下:

# mlp for the blobs multi-class classification problem with cross-entropy loss
from sklearn.datasets import make_blobs
from keras.layers import Dense
from keras.models import Sequential
from keras.optimizers import SGD
from tensorflow.keras.utils import to_categorical
from matplotlib import pyplot

# evaluate the model
_, train_acc = model.evaluate(trainX, trainY, verbose=2)
_, test_acc = model.evaluate(testX, testY, verbose=2)
print('Train: %.3f, Test: %.3f' % (train_acc, test_acc))

【问题讨论】:

  • 哪一行会抛出这个错误
  • 包括错误跟踪
  • 这些行抛出错误 - _, train_acc = model.evaluate(trainX, trainY, verbose=2) _, test_acc = model.evaluate(testX, testY, verbose=2)

标签: python tensorflow keras typeerror


【解决方案1】:

您的模型可能没有准确度指标,model.evaluate() 只返回损失。您可以像这样检查可用的指标:

print(model.metrics_names)

可能它的输出只是['loss'],并且没有准确度指标,因为您没有在model.compile() 上提供它。

因为它只是返回损失,你应该像这样改变这一行:

train_loss = model.evaluate(trainX, trainY, verbose=2)
test_loss = model.evaluate(testX, testY, verbose=2)

如果你想获得准确性,你应该将它添加到你的模型编译中:

model.compile(loss='...',metrics=['accuracy'],optimizer='adam')
.
.
train_loss, train_acc = model.evaluate(trainX, trainY, verbose=2)
test_loss, test_acc = model.evaluate(testX, testY, verbose=2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-27
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 2023-01-04
    • 2021-01-27
    相关资源
    最近更新 更多