Является ли многоузловое обучение Sagemaker пакетным для каждого узла или общим - PullRequest
0 голосов
/ 08 марта 2019

Я использую Tensorflow и замечаю, что отдельные шаги медленнее с несколькими узлами, чем с одним, поэтому я немного смущен тем, что представляет собой шаг на нескольких обучающих узлах в Sagemaker.

Если мойразмер пакета равен 10, и у меня есть 5 обучающих узлов, это «шаг» 2 для каждого узла или 10 для каждого узла?

Что если у меня размер пакета в 1 и 5 узлов?

Примечание - «узел» здесь представляет собой отдельный обучающий экземпляр, количество созданных из train_instance_count=5

1 Ответ

1 голос
/ 11 марта 2019

Пожалуйста, посмотрите на этот блокнот пример распределенного обучения с использованием TF: https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/tensorflow_distributed_mnist/tensorflow_distributed_mnist.ipynb

"Каждый экземпляр будет прогнозировать партию набора данных, вычислять потери и минимизировать оптимизатор. Один полный цикл этого процессаназывается этапом обучения.

Глобальный шаг - это глобальная переменная, совместно используемая экземплярами. Это необходимо для распределенного обучения, поэтому оптимизатор будет отслеживать количество шагов обучения между запусками:

train_op = optimizer.minimize (loss, tf.train.get_or_create_global_step ()) Это единственное необходимое изменение для распределенного обучения! "

...