тренироваться на нескольких устройствах

Я знаю, что TensorFlow предлагает API распределенного обучения, который может обучаться на нескольких устройствах, таких как несколько графических процессоров, процессоров, TPU или несколько компьютеров (рабочих). Следуйте этому документу: https://www.tensorflow.org/tutorials/distribute/multi_worker_with_keras

Но у меня есть вопрос, есть ли это какой-либо способ разделить поезд с использованием параллелизма данных для обучения на нескольких машинах (включая мобильные устройства и компьютерные устройства)?

Буду очень признателен, если у вас есть учебник / инструкция.

2 ответа

Насколько мне известно, Tensorflow поддерживает только CPU, TPU и GPU для распределенного обучения, учитывая, что все устройства должны быть в одной сети.

Для подключения нескольких устройств, как вы упомянули, вы можете пройти обучение Multi-worker.

tf.distribute.Strategy интегрирован в tf.keras, так когда model.fit используется с tf.distribute.Strategy экземпляр, а затем используя strategy.scope()для вашей модели позволяет создавать распределенные переменные, что позволяет поровну разделять ваши входные данные на ваших устройствах. Вы можете следовать этому руководству для получения более подробной информации.
Также вам может помочь распределенный ввод.

на Tensorflow 2 вы можете использовать следующий код

      mirrored_strategy = tf.distribute.MirroredStrategy()
from tensorflow.keras import models
with mirrored_strategy.scope():
     model = models.Sequential()
     ......
model.compile(....) # model compile should be out of "with" statement

См.: https://keras.io/guides/distributed_training/ https://www.tensorflow.org/tutorials/distribute/keras .

Другие вопросы по тегам