我正在训练神经网络,我的部分代码返回了以下错误:
def plot_confusion_matrix(truth,
predictions,
classes,
normalize=False,
save=False,
cmap=plt.cm.Oranges,
path="confusion_matrix.png"):
acc = (np.array(truth) == np.array(predictions))
size = float(acc.shape[0]) #error
acc = np.sum(acc.astype("int32")) / size
(...)
AttributeError: 'bool' object has no attribute 'shape'
函数调用
pred = pred.numpy()
plot_confusion_matrix(truth=labels.numpy(),
predictions=pred,
save=False,
path="logref_confusion_matrix.png",
classes=["forward", "left", "right"])
其中 thuth 代表 Y 的标签,预测为预测数组,形状均为 32、3。我检查了 numpy、ipython 等的更新,所有内容都已更新,尝试了一些修改,但没有成功。
最佳答案
acc 是一个 bool 值而不是 bool 值的 numpy 数组的唯一原因是您传递的是真值和预测的奇异值。在您提供的代码中,对于 32x3 的实际数组不会有错误。查看其余代码并确保您实际上将数组传递给 np.array() 而不是奇异值。
关于python-3.x - “bool”对象没有属性 'shape',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50822801/