1.我对模型并行性很感兴趣,我读过Yaroslav Bulatov的代码,在这个例子中,我们应该划分模型(或在tensorflow 中称为Graph)手动分配到不同的分区(left_network & right_network)。所以,我想知道我是否必须手动进行分区,simple_placer.cc
和graph_partition.cc
对整个图做了什么,我还是不太清楚。
1.在我的思想(让我知道,如果任何thong错误):如果该图有8个分区(子图),可以看作8个作业和4个工人,如何将分区分配给工人可以通过:
- 通过
tf.device()
的显式注解,或 - 分布式培训,
tf.train.replica_device_setter()
在参数服务器之间共享变量,否则将所有操作放在工作设备上
但是图是如何划分的呢?我想追踪子图(操作节点集)是什么样子的?我可以转储结果还是需要追踪/修改哪个代码文件?
请让我知道,如果任何概念是错误的或模糊的。我是一个新手这些,任何意见是赞赏。
1.在下面的代码中,matmul
是op-node吗?它会被划分到不同的作业中吗?
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
1条答案
按热度按时间hkmswyz61#
通过在调用
tf.Session.run()
时传递附加选项,可以获得放置算法的结果