#multithreading #multiprocessing #tensorflow
#многопоточность #многопроцессорная обработка #tensorflow
Вопрос:
Я пытаюсь использовать Tensorflow для своей работы над проблемой классификации.
Перед подачей входных данных в виде изображений я хочу выполнить некоторую предварительную обработку изображений. Я хотел бы выполнить эту предварительную обработку на нескольких ядрах процессора параллельно и передать их в график TensorFlow, который я хочу запустить в настройке с несколькими графическими процессорами (у меня 2 графических процессора TitanX).
Причина, по которой я хочу эту настройку, заключается в том, что, пока графический процессор выполняет обучение, процессоры продолжают выполнять свою работу по предварительной обработке и, следовательно, после каждой итерации графический процессор не простаивает. Я изучал API TensorFlow для этого, но не смог найти что-то, что конкретно касается такого сценария.
Таким образом, несколько ядер процессора должны продолжать предварительную обработку списка файлов и заполнять очередь, из которой TensorFlow извлекает свой пакет данных. Всякий раз, когда эта очередь заполнена, ядра процессора должны ждать и снова начинать обработку, когда очередь (или ее часть) освобождается из-за подачи примеров в график TensorFlow.
У меня есть два конкретных вопроса :
- Как я могу добиться этой настройки?
- Хорошая ли идея иметь такую настройку?
Наглядный пример был бы большим подспорьем.
Комментарии:
1. Начальная модель, предоставленная Google в репозитории tensorflow / models, делает именно это.
2. Так ли это? Теперь посмотрим глубже.
3. Кажется, это оно 🙂