在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 Tkinter GUI编程入门介绍
Mar 10 Python
简单谈谈python中的lambda表达式
Jan 19 Python
python 判断网络连通的实现方法
Apr 22 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
python 函数内部修改外部变量的方法
Dec 18 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
python模式 工厂模式原理及实例详解
Feb 11 Python
如何使用Python对NetCDF数据做空间相关分析
Apr 21 Python
python代码实现备忘录案例讲解
Jul 26 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
php 过滤危险html代码
2009/06/29 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
亚洲独特体验旅游专家:eOasia
2018/08/15 全球购物
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
Why do we need Unit test
2013/01/03 面试题
大学优秀班集体申报材料
2014/05/23 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
护理专科学生自荐书
2014/07/05 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
搞笑结婚保证书
2015/05/08 职场文书
赤壁观后感(2)
2015/06/15 职场文书
交通安全教育心得体会
2016/01/15 职场文书
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL