tensorflow实现tensor中满足某一条件的数值取出组成新的tensor


Posted in Python onJanuary 04, 2020

首先使用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

在上述代码中,输出分别是原始的tensor x,x中满足特定条件(此处为>0.5)的数值的索引,以及x中满足特定条件的数值。执行以下步骤,观察三个tensor对应的数值:

x, ind, y = get_tensor()
x_, ind_, y_ = sess.run([x, ind, y])

可以得到如下结果:

tensorflow实现tensor中满足某一条件的数值取出组成新的tensor

tensorflow实现tensor中满足某一条件的数值取出组成新的tensor

可以看到,上述结果中将tensor x中大于0.5的数值取出来组成了一个新的tensor y。

如果我们将代码中的tf.gather_nd替换成tf.gather会发生什么呢?由于结果不方便展示,这里不放结果了,tf.gather适用于index为一维的情况,在本例中,index为2维,如果选用tf.gather的话,对应的x, ind, y的维数分别如下:

x.shape = (5, 4)
ind.shape = (9, 2)
y.shape = (9, 2, 4)

以上这篇tensorflow实现tensor中满足某一条件的数值取出组成新的tensor就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 Python
python进阶教程之循环对象
Aug 30 Python
浅谈MySQL中的触发器
May 05 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
pytorch Dropout过拟合的操作
May 27 Python
python字典的元素访问实例详解
Jul 21 Python
详解python的异常捕获
Mar 03 Python
对tensorflow中的strides参数使用详解
Jan 04 #Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
Jan 04 #Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 #Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 #Python
Python调用钉钉自定义机器人的实现
Jan 03 #Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 #Python
pytorch 获取tensor维度信息示例
Jan 03 #Python
You might like
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
Python reduce()函数的用法小结
2017/11/15 Python
python构建基础的爬虫教学
2018/12/23 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
学生自我鉴定
2013/12/18 职场文书
会计学自我鉴定
2014/02/06 职场文书
努力学习演讲稿
2014/05/10 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题