Как определить количество дополненных изображений в Керасе?

Я работаю с Keras 2.0.0 и хочу обучить глубокую модель с огромным количеством параметров на графическом процессоре. Поскольку у меня большие данные, я должен использовать ImageDataGenerator. Честно говоря, я хочу злоупотребить ImageDataGenerator в том смысле, что я не хочу выполнять какие-либо аугментации. Я просто хочу объединить свои обучающие изображения в пакеты (и масштабировать их), чтобы я мог скормить их model.fit_generator.

Я адаптировал код из здесь и внес небольшие изменения в соответствии с моими данными (например, изменив двоичную классификацию на категоричный (но это не имеет значения для данной проблемы, о которой здесь следует поговорить). У меня есть 15000 образов поездов, и единственное «дополнение», которое я хочу выполнить, - это масштабирование до области [0,1] на train_datagen = ImageDataGenerator(rescale=1./255). После создания моего "train_generator":

train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(img_width, img_height),
    batch_size=batch_size,
    class_mode='categorical',
    shuffle = True,
    seed = 1337,
    save_to_dir = save_data_dir)

Я подхожу к модели, используя model.fit_generator().

Я установил количество эпох: epochs = 1 И размер партии: batch_size = 60

Что я ожидаю увидеть в каталоге, где хранятся мои увеличенные (то есть с измененным размером) изображения: 15000 масштабированных изображений на эпоху, то есть только с одной эпохой: 15000 масштабированных изображений. Но, как ни странно, всего 15 250 изображений.

Есть ли причина для такого количества изображений? Могу ли я контролировать количество дополненных изображений?

Похожие проблемы:

Модель fit_generator не извлекает образцы данных, как ожидалось (соответственно, при stackoverflow: Keras - Как пакеты и эпохи используются в fit_generator ()? )

Конкретный пример использования генератора данных для больших наборов данных, таких как ImageNet

Я ценю вашу помощь.


person D.Laupheimer    schedule 25.04.2017    source источник
comment
Laupheimer Если мой ответ решает вашу проблему, примите его.   -  person Ankish Bansal    schedule 13.01.2019
comment
Спасибо за ответ, но он не отвечает на мой вопрос. Я понимаю, что делает ImageDataGenerator и как это работает. Но я не могу понять, почему он ведет себя так, как указано в моем первоначальном сообщении ...   -  person D.Laupheimer    schedule 18.01.2019


Ответы (1)


Если вам необходимо передавать данные во время обучения, вам будет полезна следующая ссылка, где автор очень хорошо написал и объяснил сценарий для imageDataGenerator. Вы можете добавить к нему дополнительные функции, такие как масштабирование и другие, с полным контролем над генерацией данных.

https://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly

person Ankish Bansal    schedule 11.01.2019