PyTorch 笔记(09)— Tensor 线性代数计算(torch.trace、torch.diag、torch.mm、torch.dot、torch.inverse逆矩阵、转置)
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
这个好像与 NumPy
的 dot
不太一样
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逆矩阵、转置)相关推荐
- YDOOK:Pytorch教程:tensor 张量相乘 矩阵相乘
YDOOK:Pytorch教程:tensor 张量相乘 矩阵相乘 © YDOOK Jinwei Lin, shiye.work import torch import numpy as npt = t ...
- PyTorch 笔记(05)— Tensor 基本运算(torch.abs、torch.add、torch.clamp、torch.div、torch.mul、torch.pow等)
1. 函数汇总 Tensor 的基本运算会对 tensor 的每一个元素进行操作,此类操作的输入与输出形状一致,常用操作见下表所示. 对于很多操作,例如 div.mul.pow.fmod.等, PyT ...
- PyTorch 笔记(02)— 常用创建 Tensor 方法(torch.Tensor、ones、zeros、eye、arange、linspace、rand、randn、new)
1. Tensor 概念分类 PyTorch 中的张量(Tensor)类似 NumPy 中的 ndarrays,之所以称之为 Tensor 的另一个原因是它可以运行在 GPU 中,以加速运算. 1.1 ...
- PyTorch 笔记(08)— Tensor 比较运算(torch.gt、lt、ge、le、eq、ne、torch.topk、torch.sort、torch.max、torch.min)
1. 常用函数 比较函数中有一些是逐元素比较,操作类似逐元素操作,还有一些类似归并操作,常用的比较函数如下表所示. 表中第一行的比较操作已经实现了运算符重载,因此可以使用 a>=b,a>b ...
- PyTorch 笔记(07)— Tensor 的归并运算(torch.mean、sum、median、mode、norm、dist、std、var、cumsum、cumprod)
1. Tensor 归并运算函数 此类操作会使输出形状小于输入形状,并可以沿着某一维度进行指定操作,如加法, 既可以计算整个 tensor 的和,也可以计算 tensor 每一行或者 每一列的和, 常 ...
- (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(4)线性神经网络(暂停)
开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...
- 【 线性回归 Linear-Regression torch模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人(4/10)】
torch模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 深度学习 Pytorch笔记 B站刘二大人(4/10) 介绍 至此开始,深度学习模型构建的预备知识已经完全准备完毕. 从本章开 ...
- 深度学习PyTorch笔记(12):线性神经网络——softmax回归
深度学习PyTorch笔记(12):线性神经网络--softmax回归 6 线性神经网络--softmax回归 6.1 softmax回归 6.1.1 概念 6.1.2 softmax运算 6.2 图 ...
- pytorch tensor 初始化_PyTorch简明笔记[1]-Tensor的初始化和基本操作
听麻麻说,偷偷收藏而不感谢是不礼貌的,至少应该点个赞~我觉得麻麻说的对! 不断地被人安利PyTorch,终于忍不住诱惑决定入坑了. 当初学习TensorFlow的时候,没有系统性地学习.之前TF的英文 ...
最新文章
- 算法(第4版)Algorithms, Fourth Edition
- 一个简单可参考的API网关架构设计
- 专访《花亦山心之月》:朝夕光年首款自研国风手游有啥不一样?
- datetime模块
- 基于android平台的24点游戏设计与实现需求分析,基于Android平台的24点游戏设计与实现需求分析_毕业设计论文.doc...
- 一个 人 的 态度 决定 他 成功 的 高度
- oracle adf 自定义lov,Oracle ADF table列自定义过滤组件的方法
- Android异常总结---ActivityManager: Warning: Activity not started, its current task has been brought to
- Servlet容器如何处理请求资源路径
- 在dotnetnuke中去掉显示姓名中的空格
- Scala入门(一):直接在eclipse上安装Scala IDE
- 一次Linux遭入侵,挖矿进程被隐藏案例分析
- 计算机术语中cad代表,计算机术语中,CAD表示什么
- Java - Lambda Error:Variable used in lambda expression should be final or effectively final
- 前端面试题 —— HTML
- ThinkPHP5.1批量删除
- 用Ubuntu16.04的vi编辑器编辑qt下的默认文件(/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf)
- 平面设计师必备设计资料总汇
- 验证软件的PGP签名
- 【安全牛学习笔记】Kali Linux安装-硬盘安装、虚拟机安装