我想在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()则要求返回一个值。希望有人可以提供一些帮助。
答案 0 :(得分:0)
要回答实际问题,如果您了解Tensorflow的图执行模型,您将看到在条件之后,您的执行流必须再次收敛。这意味着您对tf.cond
的结果执行的操作必须在技术上可能,而与tf.cond
中的分支无关。如果他们是依赖的,他们应该成为tf.cond
本身的一部分。
为了实现融合,您必须从两个分支返回相同的张量。如果你在else
分支中“不想做任何事情”,你可以从那里返回一些零张量或一些重新整形的输入。究竟有什么意义,取决于您的具体用例。