我正在训练神经网络,我的部分代码返回了以下错误:
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等的更新并且所有都更新了,尝试了一些修改,但没有成功。
答案 0 :(得分:2)
acc的唯一原因是布尔值而不是布尔运算数组,这是因为你传递的是真值和预测的奇异值。在您提供的代码中,实际的32x3数组不会出错。查看代码的其余部分,确保实际将数组传递给np.array()而不是奇异值。