tensorflow 的tf.where详解

Posted demo-deng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow 的tf.where详解相关的知识,希望对你有一定的参考价值。

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

1 tf.where(
2     condition,
3     x=None,
4     y=None,
5     name=None
6 )

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

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

condition:条件,是一个boolean

x:数据

y:同x维度的数据。

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

举例子。

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

结果:

技术分享图片

 

以上是关于tensorflow 的tf.where详解的主要内容,如果未能解决你的问题,请参考以下文章

tf.where() 详解

TensorFlow2 一小时学会基本操作 4

URL fetch failure on https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz: None(代码片

来自密集的Tensorflow的稀疏矩阵

TF报错:Use tf.where in 2.0, which has the same broadcast rule as np.where

TF报错:Use tf.where in 2.0, which has the same broadcast rule as np.where