#python #tensorflow #opencv #matplotlib #keras
#python #тензорный поток #opencv #matplotlib #keras
Вопрос:
Итак, я пытаюсь отобразить изображение, которое уже увеличено. Но получил Invalid shape (64, 125, 125, 3) for image data
ошибку. Это мой код:
from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1./255,
zoom_range=0.1,
rotation_range=25,
width_shift_range=0.1,
height_shift_range=0.1,
shear_range=0.1, horizontal_flip=True,
fill_mode='nearest')
val_datagen = ImageDataGenerator(rescale=1./255)
# build image augmentation generators
train_generator = train_datagen.flow(train_data, train_labels_enc, batch_size=64, shuffle=True)
val_generator = val_datagen.flow(val_data, val_labels_enc, batch_size=64, shuffle=False)
from matplotlib import pyplot
for i in range(9):
# define subplot
pyplot.subplot(330 1 i)
# generate batch of images
batch = train_generator.next()
# convert to unsigned integers for viewing
image = batch[0].astype('uint8')
# plot raw pixel data
pyplot.imshow(image)
pyplot.show()
И ошибка, на которую указывалось pyplot.imshow(image)
. Любая помощь будет оценена
Комментарии:
1. попробуйте
image[0,:,:,:]
отобразить первое изображение из пакета из 64 изображений. Вы не можете отображать 64 изображения одновременно
Ответ №1:
batch
Объект представляет собой кортеж (images, labels)
, поэтому, если вы выберете batch[0]
, вы выберете все изображения.
Попробуйте:
for i in range(9):
pyplot.subplot(330 1 i)
images, labels = train_generator.next()
image = (images[0]*255).astype('uint8')
pyplot.imshow(image)
Комментарии:
1. И вы, и ответ sai привели к исчезновению ошибки, но на графике отображается только черное изображение
2. Это потому, что вы разделили пиксели на 255. Смотрите мое редактирование