【发布时间】:2017-08-17 22:21:03
【问题描述】:
我对模型并行性很好奇,我已经阅读了来自Yaroslav Bulatov 的代码。在那个例子中,我们应该手动将我们的模型(或者在 tensorflow 中我们称为 Graph)分区到不同的分区(left_network 和 right_network)。 所以,我想知道我是否必须手动进行分区,
simple_placer.cc和graph_partition.cc对整个图表做了什么?而且我仍然不清楚。-
在我看来(如果有任何错误请告诉我): 如果图有8个分区(子图),可以看成8个job,4个worker,那么partition如何分配给worker可以通过:
- 通过
tf.device()显式注释,或 - 分布式训练,
tf.train.replica_device_setter()在参数服务器之间共享变量,否则将所有 工作设备上的操作
- 通过
但是图是如何划分分区的呢? 我想跟踪子图(操作节点集)是什么样的? 我可以转储结果还是需要跟踪/修改哪个代码文件?
如果有任何概念错误或含糊,请告诉我。 我是这方面的菜鸟,任何意见都表示赞赏。
-
在下面的代码中,
matmul是一个操作节点,它会被划分为 不同的工作?y_ = tf.placeholder(tf.float32, [None, 10]) x = tf.placeholder(tf.float32, [None, 784]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.matmul(x, W) + b
【问题讨论】:
标签: algorithm tensorflow