Tensorflow的tf.while_loop并行执行时是否自动捕获依赖关系?

Tam*_*ura 5 parallel-processing while-loop python-2.7 tensorflow

我对在 Tensorflow 中实现递归神经网络感兴趣,就像如何在 TensorFlow 中实现递归神经网络?

然而,在他的实现中,该语句parallel_iterationstf.while_loop被固定为 1。我担​​心这可能太慢了。由于我要输入张量流的树具有彼此不依赖的部分,因此我希望可以设置parallel_iterations为更高的值。然而,我作为张量流的输入输入的树中不可避免地需要一些依赖项,并且我担心将其设置为更高的值可能会破坏依赖项属性。

所以我的问题是,Tensorflow 是否tf.while_loop已经自动捕获了依赖关系,以便仅在彼此不依赖的位置上使用并行性?

张量流文档说明如下:

对于正确的程序,while_loop 对于任何并行迭代 > 0 都应返回相同的结果。

但我不确定他们所说的“正确的程序”是什么意思。

guy*_*guy 4

你可以。

根据这个问题,一旦计算了所有输入节点,操作将并行运行:

while_loop 实现非严格语义。一旦该迭代的操作之一准备好执行(即,其所有输入都可用),迭代就可以开始。因此 while_loop 可以轻松地并行运行多个迭代。例如,对于扫描,即使累积值在步骤中不可用,该步骤仍然可以启动并执行任何不依赖于累积值的操作。

所以你不应该遇到任何问题。