keras.preprocessing.image - загрузить только определенные изображения (имя файла которых содержит строку) - PullRequest
0 голосов
/ 27 января 2020

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

Учебные данные находятся в подпапках class_1 и class_2 под ... / data / train /, т. е.

'... / data / train / class_1'

'... / data / train / class_2'

Чтобы импортировать данные тренировок, я в настоящее время использую

keras.preprocessing.image.ImageDataGenerator().flow_from_directory('.../data/train/')


Теперь предположим, что ( по какой-то причине ) мои данные тренировок делятся далее в два разных набора данных, но хранятся в тех же каталогах. Набор данных, к которому принадлежит обучающая выборка, указывается в имени файла, т.е. каждое имя файла содержит либо «AAA», либо «BBB». Теперь я хочу загрузить только обучающие образцы, имена файлов которых включают «AAA». Как бы я это сделал, не создавая новые каталоги?

1 Ответ

0 голосов
/ 27 января 2020

Единственная опция, которую я знаю, - это автоматическое создание новой подпапки и вызов генератора в этой подпапке. Функция автоматического создания отсортированной подпапки не должна быть слишком сложной ...

Допустим, вы сохранили путь, в котором все изображения сохранены в такой переменной:

path = r".../data/train/class_1"

И ваши идентификаторы в списке:

identifier = ["AAA","BBB",...]

Затем вы создаете новую подпапку для каждого идентификатора:

for id in identifier:
    new_path = path + "\\" + id
    os.makedirs(path + \\ + id) #creating the subfolder
    for file in os.listdir(path):
        if Path(path + "\\" + file).is_file(): #making sure, that you'r just grabbing the files, and not similar named folders
            if file.count(id) >= 0: # each file that conatins the identifier at least once
                shutil.move(path + "\\" + file,new_path + "\\" + file) #moving the file to the new subfolder 

Затем вы можете позвонить Генератор в указанной папке c, к которой вы хотите получить доступ ...

Надеюсь, это поможет, если у вас есть какие-либо вопросы, не стесняйтесь задавать: D

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