Разработать асинхронный генератор в керасе - PullRequest
0 голосов
/ 11 мая 2019

В настоящее время я разрабатываю модель CNN в Керасе, используя model.fit_generator, и в настоящее время у меня есть генератор, разработанный с использованием класса keras.utils.Sequences.Моя проблема заключается в том, что, если посмотреть на использование графического процессора, оно не так высоко, как должно быть, что означает, что текущая модель является узким местом ЦП.Я поэкспериментировал с тем, что генератор делает с данными, чтобы сделать их более эффективными, но это все еще ограничено.Моя идеальная ситуация заключается в том, чтобы генератор непрерывно обрабатывал данные и сохранял их в памяти (даже однопоточной), а затем вставлял их в графический процессор при необходимости.По сути, мне было интересно, есть ли способ заставить генератор асинхронно обрабатывать данные для эффективного метода генератора.В настоящее время генератор обрабатывает пакет, загружает пакет в графический процессор и ожидает его завершения.Я настроил max_queue_size, workers и use_multiprocessing, но, похоже, ничто не дает GPU, работающему на полную мощность.

1 Ответ

0 голосов
/ 12 мая 2019

Использование GPU может быть либо передачей данных, либо вычислением. Попробуйте выяснить, что занимает больше времени. Тогда вы сможете лучше понять эффекты размера пакета.

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