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)

0 ответов

Другие вопросы по тегам