在PyTorch中Tensor的查找和筛选例子


Posted in Python onAugust 18, 2019

本文源码基于版本1.0,交互界面基于0.4.1

import torch

按照指定轴上的坐标进行过滤

index_select()

沿着某tensor的一个轴dim筛选若干个坐标

>>> x = torch.randn(3, 4) # 目标矩阵
>>> x
tensor([[ 0.1427, 0.0231, -0.5414, -1.0009],
    [-0.4664, 0.2647, -0.1228, -1.1068],
    [-1.1734, -0.6571, 0.7230, -0.6004]])
>>> indices = torch.tensor([0, 2]) # 在轴上筛选坐标
>>> torch.index_select(x, dim=0, indices) # 指定筛选对象、轴、筛选坐标
tensor([[ 0.1427, 0.0231, -0.5414, -1.0009],
    [-1.1734, -0.6571, 0.7230, -0.6004]])
>>> torch.index_select(x, dim=1, indices)
tensor([[ 0.1427, -0.5414],
    [-0.4664, -0.1228],
    [-1.1734, 0.7230]])

where()

用于将两个broadcastable的tensor组合成新的tensor,类似于c++中的三元操作符“?:”

>>> x = torch.randn(3, 2)
>>> y = torch.ones(3, 2)
>>> torch.where(x > 0, x, y)
tensor([[1.4013, 1.0000],
    [1.0000, 0.9267],
    [1.0000, 0.4302]])
>>> x
tensor([[ 1.4013, -0.9960],
    [-0.3715, 0.9267],
    [-0.7163, 0.4302]])

指定条件返回01-tensor

>>> x = torch.arange(5)  
>>> x
tensor([0, 1, 2, 3, 4])
>>> torch.gt(x,1) # 大于
tensor([0, 0, 1, 1, 1], dtype=torch.uint8)
>>> x>1   # 大于
tensor([0, 0, 1, 1, 1], dtype=torch.uint8)
>>> torch.ne(x,1) # 不等于
tensor([1, 0, 1, 1, 1], dtype=torch.uint8)
>>> x!=1  # 不等于
tensor([1, 0, 1, 1, 1], dtype=torch.uint8)
>>> torch.lt(x,3) # 小于
tensor([1, 1, 1, 0, 0], dtype=torch.uint8)
>>> x<3   # 小于
tensor([1, 1, 1, 0, 0], dtype=torch.uint8)
>>> torch.eq(x,3) # 等于
tensor([0, 0, 0, 1, 0], dtype=torch.uint8)
>>> x==3  # 等于
tensor([0, 0, 0, 1, 0], dtype=torch.uint8)

返回索引

>>> x = torch.arange(5)
>>> x  # 1维
tensor([0, 1, 2, 3, 4])
>>> torch.nonzero(x)
tensor([[1],
    [2],
    [3],
    [4]])
>>> x = torch.Tensor([[0.6, 0.0, 0.0, 0.0],[0.0, 0.4, 0.0, 0.0],[0.0, 0.0, 1.2, 0.0],[0.0, 0.0, 0.0,-0.4]])
>>> x  # 2维
tensor([[ 0.6000, 0.0000, 0.0000, 0.0000],
    [ 0.0000, 0.4000, 0.0000, 0.0000],
    [ 0.0000, 0.0000, 1.2000, 0.0000],
    [ 0.0000, 0.0000, 0.0000, -0.4000]])
>>> torch.nonzero(x)
tensor([[0, 0],
    [1, 1],
    [2, 2],
    [3, 3]])

借助nonzero()我们可以返回符合某一条件的index(https://stackoverflow.com/questions/47863001/how-pytorch-tensor-get-the-index-of-specific-value)

>>> x=torch.arange(12).view(3,4)
>>> x
tensor([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])
>>> (x>4).nonzero()
tensor([[1, 1],
    [1, 2],
    [1, 3],
    [2, 0],
    [2, 1],
    [2, 2],
    [2, 3]])

以上这篇在PyTorch中Tensor的查找和筛选例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
Python contextlib模块使用示例
Feb 18 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
opencv python 图像去噪的实现方法
Aug 31 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
python实现动态数组的示例代码
Jul 15 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 Python
Python headers请求头如何实现快速添加
Nov 03 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 #Python
pytorch中的embedding词向量的使用方法
Aug 18 #Python
Pytorch加载部分预训练模型的参数实例
Aug 18 #Python
在pytorch中查看可训练参数的例子
Aug 18 #Python
浅析PyTorch中nn.Module的使用
Aug 18 #Python
关于PyTorch 自动求导机制详解
Aug 18 #Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 #Python
You might like
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
php GD绘制24小时柱状图
2008/06/28 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
vue router 组件的高级应用实例代码
2019/04/08 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
初步解析Python中的yield函数的用法
2015/04/03 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
解决Mac下使用python的坑
2019/08/13 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
Python包和模块的分发详细介绍
2020/06/19 Python
python爬虫用mongodb的理由
2020/07/28 Python
python开发入门——列表生成式
2020/09/03 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
中专生自我鉴定
2013/12/17 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
电影红河谷观后感
2015/06/11 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书