Pytorch 线性代数

线性代数

0. 环境介绍

环境使用 Kaggle 里免费建立的 Notebook

教程使用李沐老师的 动手学深度学习 网站和 视频讲解

小技巧:当遇到函数看不懂的时候可以按 Shift+Tab 查看函数详解。

1. 标量

标量由只有一个元素的张量表示。 在下面的代码中,我们实例化两个标量,并执行一些熟悉的算术运算,即加法、乘法、除法和指数。
在这里插入图片描述

2. 向量

可以将向量视为标量值组成的列表。 将这些标量值称为向量的元素(element)或分量(component)。
在这里插入图片描述

2.1 长度,维度,形状

在这里插入图片描述

3. 矩阵

在这里插入图片描述

3.1 转置

在这里插入图片描述

3.2 矩阵逻辑运算

在这里插入图片描述

4. 张量

当我们开始处理图像时,张量将变得更加重要,图像以 n 维数组形式出现, 其中3个轴对应于高度、宽度,以及一个通道(channel)轴, 用于表示颜色 RGB 通道(红色、绿色和蓝色)。
在这里插入图片描述

5. 张量算法基本性质

任何按元素二元运算的结果都将是相同形状的张量。

5.1 element-wise 运算

在这里插入图片描述
在这里插入图片描述
可以发现这里的 A*Belement-wise 相乘。

5.2 标量-张量的运算

在这里插入图片描述

标量和张量的运算结果为标量值和张量逐个元素相运算,而且张量的形状并未发生改变。

5.3 向量-张量的运算

在这里插入图片描述
向量和张量逐行运算。

5.4 矩阵-张量运算

在这里插入图片描述
补充
在这里插入图片描述
mul() 函数可以用于向量-矩阵,向量-张量,矩阵-张量,张量-张量之间的按某个维度的wise 乘运算。

6. 降维

6.1 求和

6.1.1 求所有元素总和

在这里插入图片描述
在这里插入图片描述

6.1.2 求特定维度的和

在这里插入图片描述
指定张量沿哪一个轴来通过求和降低维度。 以矩阵为例,为了通过求和所有行的元素来降维(轴0),我们可以在调用函数时指定axis=0。 由于输入矩阵沿0轴降维以生成输出向量,因此输入轴0的维数在输出形状中消失。
在这里插入图片描述
指定axis=1将通过汇总所有列的元素降维(轴1)。因此,输入轴1的维数在输出形状中消失。
在这里插入图片描述
沿着行和列对矩阵求和,等价于对矩阵的所有元素进行求和。

6.2 求平均

6.2.1 求所有元素平均

在这里插入图片描述

6.2.2 求特定维度平均

在这里插入图片描述

6.3 非降维求和

在这里插入图片描述
在这里插入图片描述
keepdims=True 可以保证结果的维度不变。

6.4 累加和

在这里插入图片描述
补充

  1. 累乘函数为 cumprod()
  2. axis 也可以替换为 dim,效果相同

7. 点积 Dot-Product dot()

在这里插入图片描述
多种方法都可以得到点积结果。

8. 矩阵-向量积 mv()

在这里插入图片描述

9. 矩阵-矩阵乘法 mm()

在这里插入图片描述
补充
在这里插入图片描述
matmul()函数可用于矩阵-张量,张量-张量乘运算。
在这里插入图片描述
如果矩阵和张量运算用 mm() 函数会报错。

10. 范数 norm()

线性代数中最有用的一些运算符是范数(norm)。 非正式地说,一个向量的范数告诉我们一个向量有多大。 这里考虑的大小(size)概念不涉及维度,而是分量的大小。
在这里插入图片描述
在这里插入图片描述
norm() 默认就是 2 范数或者在矩阵中的 F 范数。
在这里插入图片描述
每个元素绝对值求和就是 1 范数。

10.1 范数和目标

在深度学习中,我们经常试图解决优化问题: 最大化分配给观测数据的概率; 最小化预测和真实观测之间的距离。 用向量表示物品(如单词、产品或新闻文章),以便最小化相似项目之间的距离,最大化不同项目之间的距离。 目标,或许是深度学习算法最重要的组成部分(除了数据),通常被表达为范数。

11. 练习

11.1 我们在本节中定义了形状的张量 X(2, 3, 4)。len(X)的输出结果是什么?

在这里插入图片描述
len(X) 会输出对应 X 的 axis=0 轴。若 X 形状为 (5, 4),则 len(X) 的结果为 5

11.2 考虑形状(2, 3, 4)的张量 X ,在轴0、1、2上的求和输出是什么形状?

在这里插入图片描述
比如上例,分别将形状变成了(3, 4), (2, 4), (2, 3)。当然,如果使用 keepdim=True 参数会更形象看出结果。
在这里插入图片描述

11.3 为 linalg.norm 函数提供3个或更多轴的张量,并观察其输出。对于任意形状的张量这个函数计算得到什么?

在这里插入图片描述
直接用函数会报错,得转换一下数据类型。
在这里插入图片描述
还可以指定参数。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哇咔咔负负得正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值