我想知道 TensorFlow 的放置算法(如白皮书所述)何时真正被使用。到目前为止,我看到的所有分发 TensorFlow 的示例似乎都使用 tf.device()
手动指定节点应该在何处执行。
最佳答案
TensorFlow whitepaper 的第 3.2.1 节中描述的动态放置算法未包含在开源版本中。相反,使用了“简单放置器”(其实现可以在 simple_placer.cc
中找到),但它需要一些明确的注释(通过 tf.device()
)来使 yield 成为一个有效的放置。更高级别的构造,如 tf.train.replica_device_setter()
包装 tf.device()
以指定通用策略,例如“跨参数服务器共享变量,否则将所有操作放在工作设备上”,我们在 distributed training 中广泛使用它.
在实践中,我们发现一小组注释通常会产生比动态放置器确定的更有效的放置,但改进放置算法仍然是一个活跃的研究领域。
关于python - TensorFlow 放置算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38664942/