'bool'对象没有属性'shape'

时间:2018-06-12 17:36:28

标签: python-3.x numpy neural-network jupyter-notebook

我正在训练神经网络,我的部分代码返回了以下错误:

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等的更新并且所有都更新了,尝试了一些修改,但没有成功。

1 个答案:

答案 0 :(得分:2)

acc的唯一原因是布尔值而不是布尔运算数组,这是因为你传递的是真值和预测的奇异值。在您提供的代码中,实际的32x3数组不会出错。查看代码的其余部分,确保实际将数组传递给np.array()而不是奇异值。