Увеличение данных: keras ImageDataGenerator против ручной загрузки и увеличения - PullRequest
0 голосов
/ 15 мая 2018

Я тренирую модель в Tensorflow и хочу внедрить эффективное онлайновое увеличение данных , и я хочу, чтобы она работала достаточно быстро, чтобы это не было узким местом в обучении (поэтомучто данные будут передаваться в графический процессор быстрее, чем цикл вперед-назад модели на графическом процессоре).Тем не менее, у меня ранее был опыт работы с Keras, и его ImageDataGenerator, кажется, работает довольно аккуратно.Итак, мой вопрос:

Стоит ли использовать вместо этого Keras, просто из-за его ImageDataGenerator?Это быстрее, чем то, что я мог бы реализовать с помощью OpenCV (учитывая, что в Keras отсутствуют некоторые функции, которые мне могут понадобиться, хотя я не уверен, действительно ли они мне нужны)?

Или,если вы не можете ответить однозначно, просто поделитесь своим опытом оптимизации дополнения данных.Если вы когда-либо сравнивали (сравнивали быстродействие) что-то подобное, пожалуйста, поделитесь.Любая помощь приветствуется.Заранее спасибо.

PS: данные загружаются с жесткого диска.

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Пожалуйста, имейте в виду, что вам не нужны целые ImageDataGenerator, чтобы использовать их увеличение данных. Взгляните на image.py модуль keras-preprocessing - у вас есть все, что вам нужно здесь! Просто импортируйте все, что вам нужно. Например:

# For any rotation/skewing/shifting/zooming
from keras.preprocessing.image import apply_affine_transform

# To play with brightness
from keras.preprocessing.image import random_brightness
from keras.preprocessing.image import apply_brightness_shift

# ... and more

Кажется, что ImageDataGenerator использует PIL для чтения изображений, что намного медленнее, чем cv2 согласно моим измерениям.

Также, как упоминалось marcopah , вы можете оптимизировать конвейер подачи данных (исключите python, только tf.Queue).

0 голосов
/ 22 марта 2019

Просто опубликуйте это, если кто-то найдет это полезным.

Я бы посоветовал взглянуть на imgaug . Вы можете установить его с помощью pip:

pip install imgaug

По моему опыту, у него много опций для увеличения, и это довольно быстро, но я не знаю, подходит ли оно вам. Вы можете проверить это.

Вот несколько примеров: enter image description here

0 голосов
/ 18 мая 2018

Keras ImageDataGenerator, по моему опыту, достаточно быстр для большинства случаев использования. В этой ветке reddit обсуждается вопрос об онлайн-увеличении данных, а в в этом руководстве есть некоторые рекомендации по настройке эффективного потока данных.

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