擅长:python、mysql、java
<p>{{ops{I}与实际cd1}之间隐式创建的问题}。Tensorflow似乎只确保依赖列表中的操作已经被执行,但是前面其他操作的顺序并不是固定的。在上面的示例中,依赖项是在<code>control_flow_ops.with_dependencies</code>创建的伪标识操作上创建的:</p>
<pre><code> dependency = control_flow_ops.with_dependencies([dependency], x)
</code></pre>
<p>相当于:</p>
^{pr2}$
<p>因此,这里的依赖关系是在<code>tf.identity</code>操作之间创建的,而不是{<cd2>}操作之间创建的。<code>tf.Print</code>操作可以按任何顺序运行,严格的顺序只在{<cd4>}操作上。我不认为用<code>control_flow_ops.with_dependencies</code>来实现期望的行为是不可能的。取而代之的是使用<code>with tf.control_dependencies</code>(正如op已经建议的那样):</p>
<pre><code>xs = [tf.constant(x) for x in range(10)]
dependency = None
dxs = []
for x in xs:
if dependency is None:
dependency = tf.Print(x, [x])
else:
with tf.control_dependencies([dependency]):
dependency = tf.Print(x, [x])
dxs.append(dependency)
</code></pre>