TensorFlow 基于布尔掩码选择条目(来自两个张量之一)

SRo*_*mes 1 tensorflow

我有三个张量,a, b, 和mask,它们的形状都一样。我想生成一个新的张量c,这样每个条目c都取自aiff 的相应条目mask为 True;否则,它取自 的相应条目b

例子:

a = [0, 1, 2]
b = [10, 20, 30]
mask = [True, False, True]
c = [0, 20, 2]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Yah*_*ria 5

为什么不使用 tf.select(condition, t, e, name=None)

对于您的示例:

c = tf.select(mask, a, b)
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息tf.select,请访问Tensorflow 控制流文档

  • 请注意,`tf.select` 已从 1.0 版左右重命名为 `tf.where` (4认同)