Python 张量流中的if运算

Python 张量流中的if运算,python,if-statement,tensorflow,Python,If Statement,Tensorflow,我想在tensorflow中使用if操作,正如我所了解的,这里应该使用tf.cond()。我很困惑,如果我只想使用if操作而不是else操作,该怎么办。例如: a = tf.Constant(10) b = tf.Constant(5) for i in range(5): tmp = tf.greater_equal(a,b) result = tf.cond(tmp, lambda:tf.constant(i), None) if result is not None:

我想在tensorflow中使用if操作,正如我所了解的,这里应该使用tf.cond()。我很困惑,如果我只想使用if操作而不是else操作,该怎么办。例如:

a = tf.Constant(10)
b = tf.Constant(5)
for i in range(5):
  tmp = tf.greater_equal(a,b)
  result = tf.cond(tmp, lambda:tf.constant(i), None)
  if result is not None:
    return i

如上所述,我不想在其他操作中执行任何操作,而tf.cond()ask必须返回一个值。希望有人能提供一些帮助。

要回答实际问题,如果您了解Tensorflow的图形执行模型,您将看到在执行条件之后,您的执行流必须再次收敛。这意味着您对
tf.cond
的结果执行的操作在技术上必须独立于
tf.cond
中的分支。如果它们是依赖的,则它们应该是
tf.cond
本身的一部分


要实现收敛,必须从两个分支返回外观相同的张量。如果您在
else
分支中“不想做任何事情”,您可以从那里返回一些零张量或一些经过整形的输入。具体的意义取决于您的具体用例。

您粘贴的代码让我觉得您没有完全理解tensorflow计算模型。我建议读一读,或者开始使用“渴望执行”。您可以在那里使用普通的python控制流。