如果在tensorflow中操作

时间:2018-04-16 08:20:14

标签: python if-statement tensorflow

我想在tensorflow中使用if操作,因为我已经知道应该在这里使用tf.cond()。虽然我很困惑,如果我只想使用操作而不是操作。例如:

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

如上所述,我想在else操作中什么都不做,而tf.cond()则要求返回一个值。希望有人可以提供一些帮助。

1 个答案:

答案 0 :(得分:0)

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

为了实现融合,您必须从两个分支返回相同的张量。如果你在else分支中“不想做任何事情”,你可以从那里返回一些零张量或一些重新整形的输入。究竟有什么意义,取决于您的具体用例。