Как решить Matplotlib TypeError: только целочисленные скалярные массивы могут быть преобразованы в скалярный индекс - PullRequest
1 голос
/ 26 апреля 2020

Я пытаюсь напечатать график xlabel с меткой данных cifar-10. Тем не менее, я продолжаю получать эту ошибку типа, как показано ниже.

TypeError: only integer scalar arrays can be converted to a scalar index

import tensorflow as tf 
from tensorflow import keras

from tensorflow.keras.datasets.cifar10 import load_data

import numpy as np
import matplotlib.pyplot as plt

tf.keras.datasets.cifar10.load_data()

(x_train,y_train),(x_test,y_test)=tf.keras.datasets.cifar10.load_data()

class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',
           'dog', 'frog', 'horse', 'ship', 'truck']

x_train=x_train/255.0
x_test=x_test/255.0

plt.figure(figsize=(10,10))
for i in range(25):
    plt.subplot(5,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(x_train[i], cmap=plt.cm.binary)
    plt.xlabel(class_names[x_train[i]])
plt.show()

Это говорит о том, что проблема в
plt.xlabel (class_names [x_train [i]])) этой строке. Пожалуйста, помогите мне решить эту проблему.

1 Ответ

1 голос
/ 27 апреля 2020

Это просто опечатка. Вам необходимо изменить следующую строку. С этим изменением все работает как ожидалось.

с

plt.xlabel(class_names[x_train[i]])

до

plt.xlabel(class_names[y_train[i][0]])

Полный код здесь для справки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...