02-03线性代数
2.3 线性代数
1. 基本数学对象
对象 | 数学符号 | 代码 |
---|---|---|
标量 | x | torch.tensor(1.0) |
向量 | x | torch.arange(3) |
矩阵 | A | torch.arange(20).reshape(5,4) |
张量 | X | torch.arange(24).reshape(2,3,4) |
2. 基本运算法则及方法
2.1 标量
- 加法
x + y
; - 乘法
x * y
; - 除法
x / y
; - 指数
x ** y
.
2.2 向量
- 索引
x[3]
; - 长度、维度和形状
len(x)
,x.shape
; - 点积
torch.dot(x, y)
,torch.sum(x * y)
.
2.3 矩阵
- 转置
A.T
.
2.4 张量
- 任何按元素的一元运算都不会改变其操作数的形状;
- 给定具有相同形状的任意两个张量,任何按元素二元运算的结果都将是相同形状的张量;
- 哈达玛积
A * B
; - 将张量加上或乘以一个标量不会改变张量的形状,其中张量的每个元素都将与标量相加或相乘;
- 求和
A.sum()
; - 降维
A.sum(axis=1)
,A.sum(axis=[0,1])
; - 非降维求和
A.sum(axis=1, keepdims=True)
; - 平均值
A.mean()
,A.mean(axis=0)
; - 矩阵-向量积
torch.mv(A, x)
; - 矩阵-矩阵乘法
torch.mm(A, B)
; - L1范数
torch.abs(u).sum()
; - L2范数
torch.norm(u)
; - 弗罗贝尼乌斯范数(Frobenius norm)
torch.norm(A)
.