tensorflow学习笔记(tf.where)

本文详细介绍了 TensorFlow 中的 tf.where 函数使用方法,包括仅使用 condition 参数获取 True 元素索引的操作,以及结合 x 和 y 参数进行条件选择的具体实现。
  • tf.where(condition,  x=None, y=None,  name=None)

   根据condition返回x或y中的元素。

   函数参数:

  • condition:一个bool类型的张量(Tensor)。
  • x:可能与condition具有相同形状的张量;如果condition的秩是1,则x可能有更高的排名,但其第一维度必须匹配condition的大小。
  • y:与x具有相同的形状和类型的张量。
  • name:操作的名称(可选)。

  返回值:

  如果它们不是None,则返回与x,y具有相同类型与形状的张量;张量具有形状(num_true, dim_size(condition))。

  可能引发的异常: ValueError:当一个x或y正好不是None

Examples:

(1)tf.where(condition)的用法:

condition是布尔值:True / False; 返回值是condition中元素为True对应的索引

import tensorflow as tf
condition1 = [[True,False,False],
             [False,True,True]]
condition2 = [[True,False,False],
             [False,True,False]]
with tf.Session() as sess:
    print(sess.run(tf.where(condition1)))
    print(sess.run(tf.where(condition2))) 

输出:

[[0 0]
 [1 1]
 [1 2]]
[[0 0]
 [1 1]]

(2)tf.where(condition, x=None, y=None)的用法

condition, x, y相同维度,condition是bool值;

返回值是对应元素,condition中元素为True的元素替换为x中的元素,为False的元素替换为y中对应元素,x只负责对应替换True的元素,y只负责对应替换False的元素,x,y各有分工。由于是替换,返回值的维度,和condition,x , y都是相等的。

import tensorflow as tf
x = [[1,2,3],[4,5,6]]
y = [[1,0,3],[1,5,1]]
condition3 = [[True,False,False],
             [False,True,True]]
condition4 = [[True,False,False],
             [False,True,False]]
with tf.Session() as sess:
    print(sess.run(tf.where(condition3, x, y)))
    print(sess.run(tf.where(condition4, x, y)))

输出:

[[1 0 3]
 [1 5 6]]
[[1 0 3]
 [1 5 1]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值