Getting an error TypeError: cannot unpack non-iterable float object
Getting an error TypeError: cannot unpack non-iterable float object
我想评估我的 ML 模型,但收到此错误:
TypeError: cannot unpack non-iterable float object
我的代码如下:
# 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))
很可能您的模型没有准确率指标,model.evaluate()
returns 只有损失。您可以像这样检查可用指标:
print(model.metrics_names)
可能它的输出只是 ['loss']
,并且没有准确度指标,因为您没有在 model.compile()
.
上提供它
因为它只是 returns 损失,你应该像这样改变这一行:
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)
我想评估我的 ML 模型,但收到此错误:
TypeError: cannot unpack non-iterable float object
我的代码如下:
# 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))
很可能您的模型没有准确率指标,model.evaluate()
returns 只有损失。您可以像这样检查可用指标:
print(model.metrics_names)
可能它的输出只是 ['loss']
,并且没有准确度指标,因为您没有在 model.compile()
.
因为它只是 returns 损失,你应该像这样改变这一行:
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)