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