tensorflow 的tf.where详解

时间:2021-01-25 04:26:23

最近在用到数据筛选,观看代码中有tf.where()的用法,不是很常用,也不是很好理解。在这里记录一下

 tf.where(
condition,
x=None,
y=None,
name=None
)

Return the elements, either from x or y, depending on the condition.

理解:where嘛,就是要根据条件找到你要的东西。

condition:条件,是一个boolean

x:数据

y:同x维度的数据。

返回,返回符合条件的数据。当条件为真,取x对应的数据;当条件为假,取y对应的数据

举例子。

 def test_where():
# 定义一个tensor,表示condition,内部数据随机产生
condition = tf.convert_to_tensor(np.random.random([5]), dtype=tf.float32) # 定义两个tensor,表示原数据
a = tf.ones(shape=[5, 3], name='a') b = tf.zeros(shape=[5, 3], name='b') # 选择大于0.5的数值的坐标,并根据condition信息在a和b中选取数据
result = tf.where(condition > 0.5, a, b) with tf.Session() as sess:
print("condition:\n", sess.run([condition, result]))

结果:

tensorflow 的tf.where详解