ValueError: Входные данные для `.fit()` должны иметь ранг 4. Получил массив с формой: (1, 1, 500, 699, 3)
Я пытаюсь сгенерировать как минимум 30 различных изображений, если класс изображений содержит менее 30 изображений. Я использую Keras Image Generator. Я изменяю размер изображения, но по какой-то причине он все еще занимает 5D массив.
For Augementation of images
Takes inputs of images and labels and outputs a dictionary of augemented
images and labels
def augment ( images , labels):
for im in images:
for l in labels:
if (labels.count(l)) < 30 :
augmented_images =[]
augmented_labels =[]
im = im.reshape((1,) + im.shape)
no_im = 30 - labels.count(l)
augmented_labels = list(itertools.repeat(l, no_im))
image_gen = ImageDataGenerator(
featurewise_center=True,
featurewise_std_normalization=True,
rotation_range=15,
width_shift_range=.15,
height_shift_range=.15,
horizontal_flip=True)
print(np.shape(im))
image_gen.fit(im,augment=True)
#print(np.shape(im))
augemented_images,_ = next( image_gen.flow( im, im, batch_size=no_im))
images.append(augmented_images)
labels.append(augmented_labels)
ImageToLabelDict = dict( zip( images, labels))
return (ImageToLabelDict)
Я распечатываю форму массива прямо перед тем, как объект помещается поверх изображения. Это вывод (1, 500, 699, 3)