Как обучить модели независимых керас в разных узлах (смущающая параллельная рабочая нагрузка) - PullRequest
1 голос
/ 30 сентября 2019

У меня есть скрипт на Python с некоторыми данными (размером, который умещается в памяти), и я хочу изучить (в X разных узлах на месте) X разных версий этих моделей keras (также может быть тензорным потоком) на относительно разныхверсии этих данных, а затем объединить результаты (это напоминает ансамбль моделей). Мне не нужно дальше распространять обучение моделей keras, так как достаточно хорошо, что они работают в многопоточном режиме. Я думал, что это будет довольно распространенная установка, но я не нашел ни одного рабочего примера в Интернете.

Кто-нибудь знает лучший подход к этому?

  1. Является ли Dask правильным инструментом для этого? Это не выглядит многообещающе: https://github.com/dask/distributed/issues/2333 Это та же проблема с тензорным потоком? В соответствии с этим вполне допустимо выполнять такой тип тривиального распараллеливания с тензорным потоком: http://matthewrocklin.com/blog/work/2017/02/11/dask-tensorflow Поэтому я склоняюсь к мысли, что правильным путем является использование операций dask карты вместо задержки.

  2. Нужно ли создавать кластер TensorFlow, если я не хочу дополнительно распараллеливать обучение модели тензорного потока? https://ml.dask.org/tensorflow.html

  3. Есть ли обходной путь для этого с помощью обёртки Scikit-learn и, возможно, JobLib?

Любые подсказки в правильном направлении будут высоко оценены.

1 Ответ

1 голос
/ 30 сентября 2019

Есть много способов запуска смущающе параллельных рабочих нагрузок с Dask. Вот стандартный пример, который проходит затем: https://examples.dask.org/applications/embarrassingly-parallel.html

Как вы заметили, указав на , эта проблема , TensorFlow (и, соответственно, расширение Keras), не подходит для других систем. ,Если рабочая нагрузка, которую вы выполняете, создает, обучает, оценивает, а затем забывает объекты тензорного потока, то все будет в порядке. Проблема возникает, когда вы пытаетесь передать графики Tensorflow между различными машинами. В TensorFlow есть ошибки, которые мешают его нормальной работе.

...