Я хотел бы знать, когда фактически применяется алгоритм размещения TensorFlow (как описано в техническом документе). Все примеры распространения TensorFlow, которые я видел до сих пор, указывают вручную, где должны выполняться узлы, используя «tf.device()».Алгоритм размещения TensorFlow
ответ
Алгоритм динамического размещения, описанный в разделе 3.2.1 TensorFlow whitepaper, не был включен в версию с открытым исходным кодом. Вместо этого используется «простая россыпь» (реализация которой может быть найдена в simple_placer.cc
), но для ее эффективного размещения требуются некоторые явные аннотации (через tf.device()
). Конструкции более высокого уровня, такие как tf.train.replica_device_setter()
, обертывают tf.device()
, чтобы указать общие политики, такие как «оштрафовать переменные на серверах параметров и в противном случае поставить все операционные системы на рабочем устройстве», и мы широко используем это в distributed training.
На практике мы обнаружили, что небольшой набор аннотаций обычно дает более эффективное размещение, чем будет определять динамическая россыпи, но улучшение алгоритма размещения остается областью активных исследований.
+ mrry Спасибо за ваш ответ. Есть ли какой-то план выпустить динамический россыпь в обозримом будущем? – MiniQuark
+ mrry Nevermind, я только заметил, что этот вопрос обсуждается в https://github.com/tensorflow/tensorflow/issues/2126 – MiniQuark