我对在Tensorflow中实现递归神经网络感兴趣,就像在How can I implement a recursive neural network in TensorFlow?中所做的那样。
然而,在他的实现中,parallel_iterations
语句的tf.while_loop
被固定为1.我担心这可能太慢了。由于我将要提供给tensorflow的树具有彼此不相关的部分,我希望我可以将parallel_iterations
设置为更高的值。但是,作为输入到tensorflow的树中存在一些依赖性是不可避免的,我担心将其设置为更高的值可能会破坏依赖属性。
所以我的问题是,Tensorflow的tf.while_loop
是否已经自动捕获了依赖关系,以便仅使用不相互依赖的palesism?
tensorflow文档说明如下:
对于正确的程序,while_loop应该返回相同的结果 parallel_iterations> 0
但我不确定他们的意思是什么"正确的节目"。
答案 0 :(得分:2)
你可以。
根据这个issue,一旦计算出所有输入节点,ops将并行运行:
while_loop实现非严格语义。一旦该迭代的一个操作准备就绪(即,其所有输入都可用),迭代就可以开始执行。因此,while_loop可以轻松地并行运行多个迭代。例如,对于扫描,即使累积值在步骤中不可用,该步骤仍然可以启动并执行不依赖于累积值的任何操作。
所以你不应该遇到任何问题。