在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 相关文章推荐
Python 命令行参数sys.argv
Sep 06 Python
用Python制作简单的朴素基数估计器的教程
Apr 01 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
Django crontab定时任务模块操作方法解析
Sep 10 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
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
网页自动跳转代码收集
2009/09/27 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
Python文件读写常见用法总结
2019/02/22 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
基于python 取余问题(%)详解
2020/06/03 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
局域网标准
2016/09/10 面试题
专业实习自我鉴定
2013/10/29 职场文书
个人作风剖析材料
2014/02/02 职场文书
商场中秋节活动方案
2014/02/07 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
好的旅游活动方案
2014/08/19 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
nginx优化的六点方法
2021/03/31 Servers
52条SQL语句教你性能优化
2021/05/25 MySQL
MySQL常用慢查询分析工具详解
2022/08/14 MySQL