如果条件是标量,但t和e是相同形状的张量,那么我该如何做tf.select(condition, t, e)
? TensorFlow希望条件与t和e具有相同的形状。
答案 0 :(得分:1)
您可以使用tf.tile
使条件与t
答案 1 :(得分:1)
以前的tf.select()
op现在称为tf.where()
(在TensorFlow 1.0中)。 tf.where()
op在condition
的形状上有一个稍微奇怪的条件:它可以具有与两个分支不同的形状,但仅当它是一个长度与第0个大小相同的向量时t
和e
的维度。因此,您可以使您的程序如下工作:
condition = ... # scalar
t = ... # shape = [4, 9, 2]
e = ... # shape = [4, 9, 2]
# Tile `condition` as a vector whose length matches the 0th dimension of `t`.
condition_vector = tf.tile([condition], [tf.shape(t)[0]])
result = tf.where(condition_vector, t, e)