Использование ImageDataGenerator с изображениями в формате .npy

1

Я новичок в Керасе. Я пытаюсь обучить модель, используя ImageDataGenerator. У меня есть очень большое количество изображений для обучения, сохраненных в формате .npy. Я хотел использовать flow_from_directory(), поэтому я сохранил изображения в соответствии с рекомендациями в документации (одна папка на класс). Проблема в том, что это работает только для png, jpeg, tiff и т.д., Но не работает с моими файлами .npy.

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

Спасибо большое, любая помощь приветствуется

Теги:
keras
deep-learning
image

1 ответ

0

Да, это возможно, если вы готовы адаптировать исходный код ImageDataGenerator (который на самом деле довольно прост для чтения и понимания). Глядя на github для предварительной обработки keras, я думаю, что было бы достаточно заменить метод load_img в классе DirectoryIterator вашим собственным методом load_array который считывает файлы .npy с диска вместо изображений:

...
# build batch of image data
for i, j in enumerate(index_array):
     fname = self.filenames[j]
     ## Replace the code below with your own function
     img = load_img(os.path.join(self.directory, fname),
                    color_mode=self.color_mode,
                    target_size=self.target_size,
                    interpolation=self.interpolation)
     x = img_to_array(img, data_format=self.data_format)
 ...

Поэтому, как минимум, вы должны внести следующее изменение в эту строку:

...
# build batch of image data
for i, j in enumerate(index_array):
    fname = self.filenames[j]
    img = np.load(os.path.join(self.directory, fname))
...

Но, возможно, вам захочется реализовать некоторую дополнительную логику, которую load_img утилиты load_img ' load_img также имеет, например, цветовой режим, размер цели и т.д., И обернуть все в свою собственную функцию load_array.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню