#python #tensorflow #distributed-computing #distributed #mlops
Вопрос:
В учебном коде ParameterServerTraining из API tensorflow приведен следующий фрагмент кода в model.fit
разделе
def dataset_fn(input_context):
global_batch_size = 64
batch_size = input_context.get_per_replica_batch_size(global_batch_size)
x = tf.random.uniform((10, 10))
y = tf.random.uniform((10,))
dataset = tf.data.Dataset.from_tensor_slices((x, y)).shuffle(10).repeat()
dataset = dataset.shard(
input_context.num_input_pipelines,
input_context.input_pipeline_id)
dataset = dataset.batch(batch_size)
dataset = dataset.prefetch(2)
return dataset
dc = tf.keras.utils.experimental.DatasetCreator(dataset_fn)
и еще говорят, что
The code in dataset_fn will be invoked on the input device, which is usually the CPU, on each of the worker machines.
Означает ли это, что набор данных должен находиться в одном и том же хранилище каждого рабочего сервера (скажем, сервер параметров и рабочий сервер-разные машины)?
Или есть ли какой-либо способ, которым сервер параметров на одной машине может отправлять данные для обучения работникам без того, чтобы рабочие машины напрямую хранили набор данных здесь, в ParameterServerStrategy, который я не понимаю?
Комментарии:
1. (если у кого-то есть такие же сомнения) При дальнейшем изучении я обнаружил, что мы можем запустить координатора на 1 сервере, где присутствует сервер параметров, и мы можем запустить рабочих и параметры ps с помощью tf.distribute. Сервер(), который принимает вызовы на сокращение или обучающие вызовы от координатора. проверьте эту ссылку tensorflow.org/api_docs/python/tf/distribute/Server
Ответ №1:
Отвечаю здесь на благо сообщества.
Из раздела комментариев:
(если у кого-то есть такие же сомнения) При дальнейшем изучении я обнаружил, что мы можем запустить координатора на 1 сервере , где присутствует сервер параметров, и мы можем запустить использование рабочих и параметров ps
tf.distribute.Server()
, что требует сокращения вызовов или обучающих вызовов от координатора. проверьте эту ссылку tensorflow.org/api_docs/python/tf/distribute/Server