Как отобразить изображения, ошибочно классифицированные в keras, из моего тестового генератора данных?

#keras #classification #predict #imshow #image-classification

Вопрос:

Я использую генератор данных изображений для двоичной классификации. Я построил свою модель и теперь хочу отображать изображения, неправильно классифицированные по моему режиму.

Мой код выглядит следующим образом. Я пытаюсь создать изображения и метки, которые неправильно классифицированы, а затем отобразить изображения из 100 из моего тестового генератора.

 images = []
labels = []
for i in range(100):
    img, label = next(val_generator)
    img = img_to_array(img[i])
    img = np.expand_dims(img, axis=0)
    result = model.predict_classes(img)
    if result != label[i]:
        images.append(img)
        labels.append(label)
 

Я хочу отображать изображения[].
Код:

 images[0]
images[0].reshape(-1)
img0 = array_to_img(images[0])
plt.plot(images[0])
 

Я получаю ошибку:

 Traceback (most recent call last):

  File "<ipython-input-723-c79b5280f8fc>", line 1, in <module>
    img0 = array_to_img(images[0])

  File "/home/idu/.local/lib/python3.6/site-packages/keras/preprocessing/image.py", line 184, in array_to_img
    return image.array_to_img(x, data_format=data_format, scale=scale, **kwargs)
 

Я думаю, что речь идет о преобразовании моих изображений из массивов.
Как я могу отобразить изображения, неправильно классифицированные?
Спасибо!

   File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/utils.py", line 257, in array_to_img
    'Got array with shape: %s' % (x.shape,))

ValueError: Expected image array to have rank 3 (single image). Got array with shape: (1, 512, 512, 1)
 

Комментарии:

1. вам не нужна линия изменения формы