Как провести распределенное обучение с распределением только входного конвейера в Tensorflow? - PullRequest
1 голос
/ 08 марта 2019

В настоящее время у меня есть 4 1080 графических процессоров на моей машине, и у меня довольно мощный процессор для выполнения моего проекта классификации изображений.Однако, так как моя модель очень мала, но мои тренировочные данные очень велики (не может вместить весь набор данных в памяти), я должен динамически читать и обрабатывать партии образцов.Теперь я обнаружил, что графические процессоры используются только на уровне около 50%, в то время как все ядра моего процессора полностью используются.

Так что одним из решений является то, что я хотел бы разделить свой входной конвейер (я использую tf.data.dataset как мой входной конвейер) на другую машину (и) без графических процессоров, чтобы ускорить входной конвейер, чтобы я мог больше использовать графические процессоры.Есть два варианта, которыми я могу распределить свой входной конвейер: 1) Просто распределите увеличение данных, и поэтому один компьютер читает все необработанное изображение и отправляет его на другой компьютер, а затем отправляет его обратно на компьютеры с графическими процессорами для обучения.2) Просто скопируйте весь / часть набора данных на все машины, использующие только процессор, и они независимо обрабатывают свой собственный входной конвейер и отправляют его обратно на машины с графическими процессорами для обучения.

Я думаю, что будет намного прощереализовать вариант 2).У меня нет опыта в распределенном обучении кодированию на разных машинах.Все примеры, которые я читаю онлайн, посвящены распределенному обучению на нескольких машинах с собственными графическими процессорами.В моем случае, поскольку я собираюсь распространять только входной конвейер, есть ли более простые примеры реализации для этой цели?

...