李沐《动手学深度学习》笔记3-线性代数

标量
向量
长度:二范数
点积
正交
李沐《动手学深度学习》笔记3-线性代数_第1张图片
矩阵
线性代数的本质:矩阵是一个扭曲的空间
李沐《动手学深度学习》笔记3-线性代数_第2张图片
李沐《动手学深度学习》笔记3-线性代数_第3张图片
F范数:
李沐《动手学深度学习》笔记3-线性代数_第4张图片
对称,反对称,正定,正交置换矩阵
特征向量,特征值
此处不被改变指方向,与大小无关。
李沐《动手学深度学习》笔记3-线性代数_第5张图片

import torch
x = torch.tensor([3.0])

x = torch.arange(4)
len(x)#4
x[3] #tensor(3)
x.shape #torch.Size([4])

A = torch.arange(20).reshape(5,4)
A.T
A == A.T

X = torch.arange(24).reshape(2,3,4)

A = torch.arange(20,dtype=torch.float32).reshape(5,4)
B = A.clone()

A * B#两个矩阵按元素乘,哈达玛积

x = torch.arange(4,dtype=torch.float32)
x.sum()#tensor(6.),sum表示任意形状的元素和
A.sum()#tensor(190.) 

#指定求和汇总张量的和,按哪行求和把那行给干掉,也就是按行求和,行的维度就没有了
A.sum(axis=0)#A(2,5,4),结果为(5,4)
A.sum(axis=1)#(2,4)
A.sum(axis=[0,1])#torch.Size([4])

A.mean(),A.sum()/A.numel()
A.mean(axis=0),A.sum(axis=0)/A.shape[0]

#计算总和或者均值值保证轴数不变
sum_A = A.sum(axis=1,keepdims=True) #(5,4)
#通过广播机制将A除以sum_A
A/sum_A

torch.dot(x,y)#向量相乘结果为标量
torch.mv(A,x)#(5,4),(4,1)
torch.mm(A,B)#(5,4),(4,3)

u = torch.tensor([3.0,-4.0])
torch.norm(u) #tensor(5.),L2范数
torch.abs(u).sum()#L1范数

torch.norm(torch.ones((4,9)))#tensor(6.)矩阵F范数

向量的范数
李沐《动手学深度学习》笔记3-线性代数_第6张图片
李沐《动手学深度学习》笔记3-线性代数_第7张图片
矩阵的范数
李沐《动手学深度学习》笔记3-线性代数_第8张图片
#按特定轴做sum
李沐《动手学深度学习》笔记3-线性代数_第9张图片
keepdims(keepdimensors)
李沐《动手学深度学习》笔记3-线性代数_第10张图片
李沐《动手学深度学习》笔记3-线性代数_第11张图片

注意点

torch不区分行向量和列向量,都看做数组的
对哪一维求和就消掉哪一维
sum(axis=[0,1])先对0维,再对1维求和

你可能感兴趣的:(深度学习,线性代数)