Объект 'bool' не имеет атрибута 'shape' - PullRequest
0 голосов
/ 12 июня 2018

Я обучаю нейронную сеть, и часть моего кода возвратила следующую ошибку:

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 голосов
/ 12 июня 2018

Единственная причина, по которой acc был бы логическим, а не пустым массивом логических выражений, заключается в том, что вы передаете единственное значение для истины и предсказаний.В предоставленном вами коде не было бы ошибки для фактического массива 32x3.Посмотрите на остальную часть вашего кода и убедитесь, что вы фактически передаете массив в np.array (), а не в единственные значения.

...