Возможно ли в Keras применять расширение данных только к указанным каталогам? - PullRequest
0 голосов
/ 24 июня 2019

Количество обучающих изображений для некоторых классов в моем наборе данных слишком мало. Я использую функцию увеличения данных Keras. Тем не менее, некоторые классы имеют более чем достаточно данных. Как я мог дать Керасу указание применять увеличение для каждого класса по-своему? Например. на тех классах с достаточным количеством данных только H / V-flip, на классах с небольшим количеством вращений, сдвигов и т. д .?

В настоящее время соответствующий код выглядит так:

    train_datagen = ImageDataGenerator(
        rescale=1. / 255,
        rotation_range=45,  # randomly rotate images in the range (degrees, 0 to 180)
        width_shift_range=0.02,  # randomly shift images horizontally (fraction of total width)
        height_shift_range=0.02,  # randomly shift images vertically (fraction of total height)
        zoom_range=0.2,
        horizontal_flip=True,  # randomly flip images
        vertical_flip=True,
        validation_split=0.2
    )

    train_generator = train_datagen.flow_from_directory(
        self.train_base
        ,target_size=(self.img_width, self.img_height)
        ,batch_size=self.batch_size
        ,class_mode='categorical'
        ,color_mode='grayscale'
        ,classes=self.classes
        #,save_to_dir = "c:/temp/train_in"
    )

    learnhist = self.model.fit_generator(
        train_generator,
        steps_per_epoch=self.nb_train_samples // self.batch_size,
        epochs=self.epochs,
        callbacks=callbacks_list,
        initial_epoch=self.start_epoch
    )

Каталог в переменной self.train_base содержит подкаталоги для всех классов.

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