Как загрузить изображения для классификации проблемы с помощью Keras
Я работаю над проблемой классификации изображений с использованием фреймворка Keras. Это проблема бинарной классификации, и у меня есть обучающий набор из 2 папок и тестовый набор, содержащий изображения обоих классов. У меня нет отдельной папки для каждого класса (скажем, кошка против собаки). Keras ImageDataGenerator работает, когда у нас есть отдельные папки для каждого класса (папка cat и папка dog). Но у меня есть все изображения в одной папке, и я не понимаю, как действовать дальше. Пожалуйста, предложите, как загрузить изображения.
У меня также есть 2 CSV-файла - train.csv и test.csv. Файл train.csv содержит 2 столбца, а именно image_id и class_name. test.csv содержит image_id. Обратите внимание, что image_id совпадает с именем файлов в папках изображений.
1 ответ
Последние версии ImageDataGenerator
есть метод, называемый flow_from_dataframe
, который делает именно то, что вы хотите.
В основном это используется, сначала загружая Ваш файл CSV в панд DataFrame
создать экземпляр ImageDataGenerator
а затем позвоните flow_from_dataframe
с тремя важными параметрами:
directory
: Папка, в которой хранятся ваши данные.x_col
: Столбец вDataFrame
который содержит имена файлов внутриdirectory
которые соответствуют вашим данным обучения / тестирования.y_col
: Столбец вDataFrame
соответствующие меткам, которые будут выводиться генератором.
Затем вы используете этот генератор, как и любой другой, вызывая fit_generator
, Более подробная информация и примеры доступны здесь.