1. 常用函数

常用线性表函数如下表所示:

2. 使用示例

2.1 torch.trace

In [22]: import torch as tIn [23]: a = t.arange(1, 10).view(3,3)In [24]: a
Out[24]:
tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]])In [25]: a.trace()
Out[25]: tensor(15)

2.2 torch.diag

In [24]: a
Out[24]:
tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]])In [26]: a.diag()
Out[26]: tensor([1, 5, 9])In [27]: a.diag(diagonal=1)
Out[27]: tensor([2, 6])In [28]: a.diag(diagonal=2)
Out[28]: tensor([3])

2.3 torch.t

In [24]: a
Out[24]:
tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]])In [30]: a.t()
Out[30]:
tensor([[1, 4, 7],[2, 5, 8],[3, 6, 9]])In [31]:

2.4 torch.inverse

注意:并不是所有的矩阵都可逆。对不可逆矩阵进行求逆会报错。

RuntimeError: "inverse_cpu" not implemented for 'Long'
In [37]: z = t.Tensor([[0,1,2], [1,1,4],[2,-1,0]])In [38]: z
Out[38]:
tensor([[ 0.,  1.,  2.],[ 1.,  1.,  4.],[ 2., -1.,  0.]])In [39]: z.inverse()
Out[39]:
tensor([[ 2.0000, -1.0000,  1.0000],[ 4.0000, -2.0000,  1.0000],[-1.5000,  1.0000, -0.5000]])In [40]:

2.5 torch.triu

In [40]: a
Out[40]:
tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]])In [41]: a.triu()
Out[41]:
tensor([[1, 2, 3],[0, 5, 6],[0, 0, 9]])In [43]: a.triu(1)
Out[43]:
tensor([[0, 2, 3],[0, 0, 6],[0, 0, 0]])In [44]: a.triu(2)
Out[44]:
tensor([[0, 0, 3],[0, 0, 0],[0, 0, 0]])In [45]:

2.6 torch.mm

In [46]: a = t.arange(1, 5).view(2,2)In [47]: a
Out[47]:
tensor([[1, 2],[3, 4]])In [48]: b = t.arange(2, 6).view(2,2)In [49]: b
Out[49]:
tensor([[2, 3],[4, 5]])In [50]: a.mm(b)
Out[50]:
tensor([[10, 13],[22, 29]])In [51]:

2.6 torch.dot

In [62]: torch.dot(torch.tensor([2, 3]), torch.tensor([2, 1]))
Out[62]: tensor(7)In [56]: a
Out[56]:
tensor([[1, 2],[3, 4]])In [57]: b
Out[57]:
tensor([[2, 3],[4, 5]])In [58]: a.dot(b)
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-58-ac6884f5cff1> in <module>
----> 1 a.dot(b)RuntimeError: 1D tensors expected, got 2D, 2D tensors at C:\w\b\windows\pytorch\aten\src\TH/generic/THTensorEvenMoreMath.cpp:431

这个好像与 NumPydot 不太一样

In [65]: a = np.array([[1,2], [3,4]])In [66]: a
Out[66]:
array([[1, 2],[3, 4]])In [67]: b = np.array([[2,3], [4,5]])In [68]: b
Out[68]:
array([[2, 3],[4, 5]])In [69]: a.dot(b)
Out[69]:
array([[10, 13],[22, 29]])In [70]: np.dot(a,b)
Out[70]:
array([[10, 13],[22, 29]])In [71]:

PyTorch 笔记(09)— Tensor 线性代数计算(torch.trace、torch.diag、torch.mm、torch.dot、torch.inverse逆矩阵、转置)相关推荐

  1. YDOOK:Pytorch教程:tensor 张量相乘 矩阵相乘

    YDOOK:Pytorch教程:tensor 张量相乘 矩阵相乘 © YDOOK Jinwei Lin, shiye.work import torch import numpy as npt = t ...

  2. PyTorch 笔记(05)— Tensor 基本运算(torch.abs、torch.add、torch.clamp、torch.div、torch.mul、torch.pow等)

    1. 函数汇总 Tensor 的基本运算会对 tensor 的每一个元素进行操作,此类操作的输入与输出形状一致,常用操作见下表所示. 对于很多操作,例如 div.mul.pow.fmod.等, PyT ...

  3. PyTorch 笔记(02)— 常用创建 Tensor 方法(torch.Tensor、ones、zeros、eye、arange、linspace、rand、randn、new)

    1. Tensor 概念分类 PyTorch 中的张量(Tensor)类似 NumPy 中的 ndarrays,之所以称之为 Tensor 的另一个原因是它可以运行在 GPU 中,以加速运算. 1.1 ...

  4. PyTorch 笔记(08)— Tensor 比较运算(torch.gt、lt、ge、le、eq、ne、torch.topk、torch.sort、torch.max、torch.min)

    1. 常用函数 比较函数中有一些是逐元素比较,操作类似逐元素操作,还有一些类似归并操作,常用的比较函数如下表所示. 表中第一行的比较操作已经实现了运算符重载,因此可以使用 a>=b,a>b ...

  5. PyTorch 笔记(07)— Tensor 的归并运算(torch.mean、sum、median、mode、norm、dist、std、var、cumsum、cumprod)

    1. Tensor 归并运算函数 此类操作会使输出形状小于输入形状,并可以沿着某一维度进行指定操作,如加法, 既可以计算整个 tensor 的和,也可以计算 tensor 每一行或者 每一列的和, 常 ...

  6. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(4)线性神经网络(暂停)

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  7. 【 线性回归 Linear-Regression torch模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人(4/10)】

    torch模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 深度学习 Pytorch笔记 B站刘二大人(4/10) 介绍 至此开始,深度学习模型构建的预备知识已经完全准备完毕. 从本章开 ...

  8. 深度学习PyTorch笔记(12):线性神经网络——softmax回归

    深度学习PyTorch笔记(12):线性神经网络--softmax回归 6 线性神经网络--softmax回归 6.1 softmax回归 6.1.1 概念 6.1.2 softmax运算 6.2 图 ...

  9. pytorch tensor 初始化_PyTorch简明笔记[1]-Tensor的初始化和基本操作

    听麻麻说,偷偷收藏而不感谢是不礼貌的,至少应该点个赞~我觉得麻麻说的对! 不断地被人安利PyTorch,终于忍不住诱惑决定入坑了. 当初学习TensorFlow的时候,没有系统性地学习.之前TF的英文 ...

最新文章

  1. 算法(第4版)Algorithms, Fourth Edition
  2. 一个简单可参考的API网关架构设计
  3. 专访《花亦山心之月》:朝夕光年首款自研国风手游有啥不一样?
  4. datetime模块
  5. 基于android平台的24点游戏设计与实现需求分析,基于Android平台的24点游戏设计与实现需求分析_毕业设计论文.doc...
  6. 一个 人 的 态度 决定 他 成功 的 高度
  7. oracle adf 自定义lov,Oracle ADF table列自定义过滤组件的方法
  8. Android异常总结---ActivityManager: Warning: Activity not started, its current task has been brought to
  9. Servlet容器如何处理请求资源路径
  10. 在dotnetnuke中去掉显示姓名中的空格
  11. Scala入门(一):直接在eclipse上安装Scala IDE
  12. 一次Linux遭入侵,挖矿进程被隐藏案例分析
  13. 计算机术语中cad代表,计算机术语中,CAD表示什么
  14. Java - Lambda Error:Variable used in lambda expression should be final or effectively final
  15. 前端面试题 —— HTML
  16. ThinkPHP5.1批量删除
  17. 用Ubuntu16.04的vi编辑器编辑qt下的默认文件(/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf)
  18. 平面设计师必备设计资料总汇
  19. 验证软件的PGP签名
  20. 【安全牛学习笔记】Kali Linux安装-硬盘安装、虚拟机安装

热门文章

  1. 条形码?二维码?生成、解析都在这里!
  2. linux修改mysql密码sa_如何修改SA口令,数据库SA密码怎么改?
  3. visual2017中给C#项目添加配置文件
  4. GeforceRTX系列参数对比
  5. GPU上的快速光谱图分区
  6. Pass Infrastructure基础架构(上)
  7. Docker App应用
  8. 基于TensorRT车辆实时推理优化
  9. 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用
  10. 2021年大数据Flink(二十八):Flink 容错机制 自动重启策略和恢复