文章目录

  • torch.narrow
    • 函数原型
    • 参数说明
    • 例程
  • torch.conj
    • 函数原型
    • 例程
  • torch.nonzero
    • 函数原型
    • 例程
Function Description Detail
narrow Returns a new tensor that is a narrowed version of input tensor. 返回缩略信息
conj Returns a view of input with a flipped conjugate bit. 创建共轭张量
nonzero 返回张量中非0的引索

torch.narrow

函数原型

torch.narrow(input, dim, start, length) → Tensor

它的具体作用是,从输入的张量返回一个摘要性质的新张量。使用者可以指定维度,也可以指定摘要的开始和结束位置,有一点类似于张量分片的效果 [a:b]。不过通常我们喜欢直接使用分片,而比较少用到这个函数。

参数说明

  • input (Tensor) – the tensor to narrow
  • dim (int) – the dimension along which to narrow
  • start (int) – the starting dimension
  • length (int) – the distance to the ending dimension

具体例程如下:

例程

>>> x = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> torch.narrow(x, 0, 0, 2)
tensor([[ 1,  2,  3],[ 4,  5,  6]])>>> torch.narrow(x, 1, 1, 2)
tensor([[ 2,  3],[ 5,  6],[ 8,  9]])

torch.conj

函数原型

torch.conj(input) → Tensor

根据输入的张量返回一个共轭张量。这里所谓的共轭概念,主要是指复平面上,对于复轴的数的翻转。比方说:

3 − 4 j 3-4j 3−4j

的共轭就是:

3 + 4 j 3+4j 3+4j

其中,j是虚数。另外,根据官方说明,如果输入的数不是复数,那么这个函数只会返回输入的张量本身。

注意

torch.conj() 执行 lazy conjugation,但实际共轭张量可以随时使用 torch.resolve_conj() 实现。

不过说实话,我还没听说过 lazy conjugation,也不太清楚实际执行上会有什么区别,等到有一天用到这个函数后有什么新发现我会再更新这个部分的内容的。

警告

将来,torch.conj() 可能会为非复杂数据类型的输入返回一个不可写的视图。 当输入为非复杂 dtype 时,建议程序不要修改 torch.conj_physical() 返回的张量以与此更改兼容。

例程

>>> x = torch.tensor([-1 + 1j, -2 + 2j, 3 - 3j])
>>> x.is_conj()
False>>> y = torch.conj(x)
>>> y
tensor([-1.-1.j, -2.-2.j,  3.+3.j])>>> y.is_conj()
True

torch.nonzero

函数原型

torch.nonzero(input, *, out=None, as_tuple=False) → LongTensor or tuple of LongTensors

注意

torch.nonzero(…, as_tuple=False) (默认)它会返​​回一个二维张量,其中每一行都是非零值的索引。
torch.nonzero(…, as_tuple=True) 返回一维索引张量的元组,允许高级索引,因此 x[x.nonzero(as_tuple=True)] 给出张量 x 的所有非零值。在返回的元组中,每个索引张量包含特定维度的非零索引。
此外,当输入在 CUDA 上时,torch.nonzero() 会导致主机设备同步。

例程

>>> torch.nonzero(torch.tensor([1, 1, 1, 0, 1]))
tensor([[ 0],[ 1],[ 2],[ 4]])
>>> torch.nonzero(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]]))
tensor([[ 0,  0],[ 1,  1],[ 2,  2],[ 3,  3]])>>> torch.nonzero(torch.tensor([1, 1, 1, 0, 1]), as_tuple=True)
(tensor([0, 1, 2, 4]),)>>> torch.nonzero(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]]), as_tuple=True)
(tensor([0, 1, 2, 3]), tensor([0, 1, 2, 3]))>>> torch.nonzero(torch.tensor(5), as_tuple=True)
(tensor([0]),)

Pytorch基础操作 —— 13. 缩略信息、共轭、非零测试相关推荐

  1. Pytorch基础操作 —— 6. 如何使用自定义数据集

    文章目录 自定义数据集 Step 1. 熟悉你的数据集 有数据就要有标签 数据大小.维度一定要一样 归一化 Step 2. 确定如何加载你的数据集 使用 DataLoader 批量加载数据 需要注意的 ...

  2. Discuz! 移动端开发笔记-API篇(一)——获取主题列表中帖子的缩略信息

    一.背景 因为去年掌上论坛的app.小程序和API都开源了,解决了之前想开发移动端Dz应用而没有API的痛点.故最近打算抽空用uin-app做一下Dz的移动端开发. Discuz!掌上论坛APP 源码 ...

  3. 02.PyTorch基础操作(3-1 机器学习中的分类与回归问题-机器学习基本构成元素)

    @[TOC](02.PyTorch基础操作(3-1 机器学习中的分类与回归问题-机器学习基本构成元素)) 来自慕课网 一.3-1 机器学习中的分类与回归问题-机器学习基本构成元素

  4. pytorch基础操作

    处理数据(Torch) 文章目录 处理数据(Torch) 数据初始化 tensor的索引.切片.连接.变异操作 数学操作 Tensor是一种特殊的数据结构,在Pytorch中,就是用Tensor来编码 ...

  5. pytorch基础操作学习笔记(autograd,Tensor)

    简述 简单讲讲关于torch.autograd内容(因为我也有点菜) 文章目录 简述 简单讲讲 Tensor 介绍Tensor 创建Tensor 获取Tensor数据规模 将tensor转成其他数据类 ...

  6. Pytorch基础操作 —— 11. 改变张量的维度(维度修改)

    文章目录 torch.reshape 例程 Function Description Detail reshape Returns a tensor with the same data and nu ...

  7. PyTorch基础(13)-- torch.nn.Unfold()方法

    前言 最近在看新论文的过程中,发现新论文中的代码非常简洁,只用了unfold和fold方法便高效的将论文的思想表达出,因此学习记录一下unfold和fold方法. 一.方法详解 方法 torch.nn ...

  8. Pytorch基础操作 —— 8. 张量转置操作

    文章目录 torch.transpose 对于高维度张量 torch.t 例程 Function Description Detail transpose Returns a tensor that ...

  9. Pytorch基础操作 —— 17. 绝对值、取整

    Function Description Detail abs Computes the absolute value of each element in input. 返回元素的绝对值 absol ...

最新文章

  1. springboot自定义配置文件
  2. Spring中策略模式实现方法
  3. 【数据结构与算法】之深入解析“最小高度树”的求解思路与算法示例
  4. vb 通过php连接mysql数据库连接_PHP连接MySQL数据库的几种方法
  5. postman怎么不登陆使用_最新百度云不限速,免安装、免登陆、不限速,打开网站就能使用...
  6. 14产品经理要懂的-人性的目的性
  7. 常用JavaScript函数 1 - 15 (自我总结)
  8. 计算机编程c 语言实型数据,C语言-基础教程-C语言实型数据
  9. SpringMVC跨重定向请求传递数据
  10. 一站式快速实现应用现代化,IBM Cloud Pak做对了什么? | 技术公开课
  11. Drawable之color示例
  12. 莫比乌斯函数与莫比乌斯反演
  13. wxpython如何分开界面和运行代码_wxpython笔记:wxpython的界面布局方式(一)
  14. 电费我来降!5G用电支持十大地方标杆政策梳理
  15. unity小地图制作和方向导航
  16. 贪心法和动态规划法的区别
  17. 微信终端跨平台组件 Mars 在移动网络的探索和实践
  18. 英语语言学u c,英语语言学资料(一)
  19. Java基础练习习题
  20. NHibernate基础

热门文章

  1. 软硬协同,全栈自主:华为云GaussDB二十年磨一剑
  2. OpenMV IDE使用教程
  3. 华为交换机802.1X配置
  4. 计算机学院班群头像,【北工大表白墙】计算机类18级3班孙宇辰同学,你是广袤沙漠里的盐。...
  5. 基于Matlab模板匹配方法的车牌识别系统设计
  6. 微星主板jsp1接线图_SPI编程器刷带JSPI1的联想主板(据说是微星OEM的)
  7. 域名生命周期是多久,有几个阶段?
  8. iOS - 广告标识符(IDFA IDFV)
  9. uni-app 109生成个人二维码名片
  10. 济南什么是专利挖掘?如何挖掘专利?