在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使用微信SDK实现的微信支付功能示例
Jun 30 Python
Python callable()函数用法实例分析
Mar 17 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
PyTorch 1.0 正式版已经发布了
Dec 13 Python
python3.4爬虫demo
Jan 22 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
用Python开发app后端有优势吗
Jun 29 Python
使用python求斐波那契数列中第n个数的值示例代码
Jul 26 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
Python OpenCV超详细讲解基本功能
Apr 02 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
各种战术和打法的原创者
2020/03/04 星际争霸
php str_replace的替换漏洞
2008/03/15 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
Js+XML 操作
2006/09/20 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
python实现随机密码字典生成器示例
2014/04/09 Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
Python之os操作方法(详解)
2017/06/15 Python
python爬取m3u8连接的视频
2018/02/28 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
Windows下python3.6.4安装教程
2018/07/31 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
前台接待员岗位职责
2014/01/02 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
带薪年假请假条
2014/02/04 职场文书
2014年中秋寄语
2014/08/11 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
Golang入门之计时器
2022/05/04 Golang
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers