tf.where、

tf.where()详解 目录函数介绍 函数介绍 tf.where()返回一个布尔张量中真值的位置。对于非布尔型张量,非0的元素都判为True 返回的是二维张量,第一个维度的数量,即行数表明有多少个为True值;同一行中的数据代表该True值在原张量中的位置。 举几个例子: test_a=tf.constant([[1,2,3],[0,0,6]]) tf.where(test_a) 输出: test_a=tf.constant([[1,-2,-5],[0,0,6]]) tf.where(test_a) 输出: test_a= 阅读详情

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在复现Faster R-CNN过程中,计算相应的模型损失时,遇到tf.where()等函数不是很清楚,今天记录下来以备查看。


一、tf.where的介绍

tf.where()对于非布尔型张量,返回的是非零数值的位置。

import tensorflow as tf
test=tf.constant([[1,-1,3],[0,0,6]])
tf.where(test)

在这里插入图片描述

二、tf.gather_nd()的介绍

在tensor中进行不连续的取值,就必须用到tf.gather_nd()。其基本语法如下:

tf.gather_nd(
params,
indices,
name=None
)

例子如下:

# coding=utf-8
# tf 2.0+
import tensorflow as tf

a = tf.constant([[1,  2,  3,  4,  5],
                 [6,  7,  8,  9,  10],
                 [11, 12, 13, 14, 15]])

index_a1 = tf.constant([[0, 2], [0, 4], [2, 2]])  # 随便选几个
index_a2 = tf.constant([0, 1])  # 0行1列的元素——2
index_a3 = tf.constant([[0], [1]])  # [第0行,第1行]
index_a4 = tf.constant([0])  # 第0行

print(tf.gather_nd(a, index_a1))
print(tf.gather_nd(a, index_a2))
print(tf.gather_nd(a, index_a3))
print(tf.gather_nd(a, index_a4))

在这里插入图片描述

tensorflow实现tensor中满足某一条件的数值取出组成新的tensor 首先使用tf.where()将满足条件的数值索引取出来,在numpy中,可以直接用矩阵引用索引将满足条件的数值取出来,但是在tensorflow中这样是不行的。所幸,tensorflow提供了tf.gather()和tf.gather_nd()函数。 看下面这一段代码: import tensorflow as tf sess = tf.Session() def get_tensor(): x = tf.random_uniform((5, 4)) ind = tf.where(x>0.5) y = tf.gather_nd(x, ind) return x, ind, y 立即下载

相关推荐

别再只调电位器了!用单片机PWM控制LM317输出电压,精度和玩法都多了

本文探讨了如何利用单片机PWM控制LM317输出电压,替代传统的电位器调节方案。通过PWM信号的有源滤波和运放处理,实现了更高精度(±5mV)、更好温度稳定性(0.01%/°C)的数控稳压电源设计,支持远程控制和可编程曲线输出,为经典电路注入数字化智能。

weixin_29164497的博客 360

tf.where()

tf.where( condition, x=None, y=None, name=None ) 根据条件返回元素(x或y)。如果x和y都为空,那么这个操作返回条件的真元素的坐标。坐标在二维张量中返回,其中第一个维度(行)表示真实元素的数量,第二个维度(列)表示真实元素的坐标。记住,输出张量的形状可以根据输入中有多少个真值而变化。索引按行主顺序输出。如果两者...

weixin_36670529的博客 1212

实用电路精讲系列---快速精密桥式放大器电路

快速精密桥式放大器通过惠斯通电桥转换物理量为差分信号,经仪表放大器精密放大,具有高共模抑制、低噪声和宽带宽特性。其核心包含:电桥传感器转换、仪表放大器信号调理(增益可调、温漂补偿)、输出级适配ADC。典型应用包括智能断路器监测、胎压检测、电池安全预警等10大领域,需注意传感器-放大器-ADC最短路径布局。实用电路采用LT1057S和LT1010构建,实现稳定供电、差分处理、功率放大和桥式驱动,满足高精度、快速响应需求。该技术在工业控制、医疗设备等领域具有重要价值。

weixin_40590799的博客 1415

tf.where()函数详细用法(附代码理解)

tf.where(input, name=None) 返回一个布尔张量的真值的位置 此操作返回输入中真实元素的坐标。坐标在二维张量中返回,其中第一个维度(行)表示真实元素的数量,第二个维度(列)表示真实元素的坐标。记住,输出张量的形状可以根据输入中有多少个真值而变化。索引以行为主的顺序输出。 例子: # 'input' tensor is [[True, False] # ...

weixin_39550091的博客 7394

Android应用加固脱壳实战:从爱加密原理到Frida内存Dump与修复

在移动应用安全领域,代码加固与动态加载是保护核心逻辑的关键技术。其原理在于通过修改应用启动流程,将原始DEX加密隐藏,并注入包含解密逻辑的壳DEX,实现运行时动态加载。这项技术的核心价值在于防止应用被逆向分析、二次打包或恶意篡改,广泛应用于金融、游戏等高安全要求场景。对于安全研究、漏洞挖掘或历史版本审计,掌握脱壳技能至关重要。本文聚焦于**爱加密**等主流加固方案,深入探讨如何利用**Frida**框架在内存中精准捕获解密后的DEX数据,并解决脱壳后常见的签名校验等运行问题,提供一套从原理到实践的完整攻防思

weixin_28716443的博客 490

Cartographer参数调优指南:如何用Lua配置解决建图漂移问题

本文深入解析Cartographer SLAM系统的Lua参数调优方法,针对建图漂移问题提供完整解决方案。从运动滤波、扫描匹配到多传感器融合,详细讲解关键参数配置技巧,并给出仓库物流和服务机器人等典型场景的优化方案,帮助开发者实现精准建图。

vulkan6gpu的博客 118

tf.where() 详解

tf.where(tensor) :tensor 为一个bool 型张量,where函数将返回其中为true的元素的索引。 tf.where(tensor,a,b):a,b为和tensor相同维度的tensor,将tensor中的true位置元素替换为a中对应位置元素,false的替换为b中对应位置元素。 ...

“365天深度学习训练营”报名进行中~ 1110

图相似度模型(论文篇)

图相似度模型

weixin_43702653的博客 5749

tf.where与np.where用法详解

np.where(condition, [x, y])有两种用法: 1.Return elements chosen from x or y depending on condition. (即满足条件(condition),输出x,不满足输出y) >>> a = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7...

先说一下,就简单地写点儿氵文,不是博客,只是我的笔记本/工具书 1084

逆强化学习:从专家示范中学习策略

逆强化学习(Inverse Reinforcement Learning,简称IRL)是强化学习(Reinforcement Learning,简称RL)的一个子领域,它的目标是从专家的行为中学习策略。在传统的强化学习中,智能体通过与环境交互,根据奖励信号来学习一个策略。而在逆强化学习中,我们没有直接的奖励信号,而是通过观察专家的行为来推断出奖励函数,从而学习到一个与专家类似的策略。逆强化学习作为强化学习的一个重要子领域,在许多实际应用场景中都取得了显著的成功。

AI天才研究院 1453

多智能体系统在军事仿真中的应用:AI人工智能战略推演

本文旨在全面解析多智能体系统在军事仿真领域的应用技术,重点探讨AI驱动的战略推演系统的设计原理和实现方法。研究范围涵盖从基础理论到实际应用的完整技术栈。本文采用从理论到实践的递进结构,首先介绍核心概念,然后深入算法实现,最后展示实际应用案例和未来展望。多智能体系统(MAS):由多个相互作用的智能体组成的分布式系统军事仿真(Military Simulation):通过计算机模拟军事行动和战争场景战略推演(Strategic Wargaming):通过模拟推演评估军事战略的有效性更高保真度的仿真。

AI天才研究院 1778

tensorflow的用法:tf.where 和 tf.cond对比

import tensorflow as tf p=tf.constanc(4) x=tf.constant(5) y = tf.cond(p<x,lambda:x**2,lambda:x) z=tf.where(p<x,x**2,x) with tf.Session() as sess: sess.run(tf.global_variables_initializer()...

lidichengfo0412的博客 2144

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Tensorflow中的tf.where与tf.greater

tf.greater(a,b) 功能:通过比较a、b两个值的大小来输出对错。 例如:当a=4,b=3时,输出结果为:true;当a=2,b=3时,输出结果为:false。 import tensorflow as tf sess=tf.Session() with sess.as_default(): print(tf.greater(4,3).eval()) 结果: True tf...

edward_zcl的博客 1822

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【TensorFlow】tf.where

官方API TensorFlow中文社区tf.where tf.where(input, name=None)` Returns locations of true values in a boolean tensor. This operation returns the coordinates of true elements in input. The coordinates are...

mjiansun的专栏 460

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

tf.where

介绍参数形式 介绍最简单的用法,解释返回值的含义 根据官方API文档,补充更多的调用形式 参数 tf.where( condition, x=None, y=None, name=None ) 返回值类型 x = tf.constant([29.05088806, 27.61298943, 31.19073486, 29.35532951]) ind...

niukai1768的专栏 414

tf.where和np.where

tf.where 与np.where类似,有两种使用方式 np.where(condition,x,y)condition中为True的为x,为False的为y np.where(condition) 返回是满足条件的位置索引,如果是一个二维矩阵,返回两个一维array np.where(condition,x,y)x,y是可以取单独的数,但是tf.where(condition,x,y)x,y的维度要与condition一致 x = np.array([[0.3,0.4],[0.6,0.8]]) x

得克特 758

tf.where 和 tf.cond对比

tf.where 和 tf.cond都是类似于if…else 的逻辑操作,现对比两者区别 import tensorflow as tf pred=tf.placeholder(dtype=tf.bool,name='bool') x=tf.constant(1) y = tf.cond(pred,lambda:x+1,lambda:x-1) z=tf.where(pred,x+1,x-...

UESTC_V的博客 2509

TensorFlow常用函数tf.where()、tf.gather()、tf.squeeze()详解!!

1.tf.where() 第一种用法: where(condition)的用法 where(condition, x=None, y=None, name=None)  condition是bool型值,True/False 返回值,是condition中元素为True对应的索引 例如: import tensorflow as tf a = [[1,2,3],[4,5,6]] b = [[1,0,3],[1,5,1]] condition1 = [[True,False,False],

wangxuecheng666的博客 2298

tf.where tf.gather_nd用法

记录一下where的用法: 官方文档 tf.where(input, name=None)` Returns locations of true values in a boolean tensor. This operation returns the coordinates of true elements in input. The coordinates are returned in ...

eddddd’ world 350

tf.where()函数

tf.where()定义如下: where(condition, x=None, y=None,name=None) condition:一个Tensor,数据类型为tf.bool类型 如果x、y均为空,那么返回condition中值为True的位置的Tensor:例如:x就是condition,y是返回值 x中值为True的位置有[0,0,0],[0,1,1],[0,2,0],[0,...

458

TensorFlow函数:tf.where()

focal loss中要实现交叉熵函数,需要将label图像中不同class对应的位置取出,经查询需要用到tf.where函数,随即记录如下。 Tensorflow 官方文档介绍 Returns locations of true values in a boolean tensor.This operation returns the coordinates of true elements...

Aidoneus_y 582

tf的小函数-tf.where,tf.gather

tf.sign和tf.reduce_sum https://blog.csdn.net/qq_15111861/article/details/81318963 tf.sign就是sign函数 tf.reduce_max https://blog.csdn.net/lllxxq141592654/article/details/85345864 注意keepdim和axis if keepdim==false axis=0,意思是我要消除第0维,所以找每一列的最大值来充当原来维度的唯一值,(维度数减..

ronghwa_lu 340

tf.where(tensor)

最近再看retinanet的keras代码,看到focal loss中有这个的用法,记录下来 先看其一般用法 1.tf.where(tensor) tensor为一个bool型张量,where函数将返回其中为true的元素的索引, import tensorflow as tf import numpy as np sess=tf.Session() a=np.array([[1,0,0...

shuijinghua的博客 1953

tf.where用法

tenflow 中tf.where()用法 where(condition, x=None, y=None, name=None) condition, x, y 相同维度,condition是bool型值,True/False 1.where(condition)的用法 condition是bool型值,True/False 返回值,是condition中元素为True对应的索引 看个例子...

richard1230的博客 389

tenflow 入门 tf.where()用法

tenflow  中tf.where()用法where(condition, x=None, y=None, name=None)condition, x, y 相同维度,condition是bool型值,True/False1,where(condition)的用法condition是bool型值,True/False返回值,是condition中元素为True对应的索引看个例子:import ...

ustbbsy的博客 5万+
上一篇: 28.C++之STL(六)
下一篇: PyG的Planetoid无法直接下载Cora等数据集的解决方法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值