深度学习笔记002LinearAlgebra线性代数基础

今天跟着李沐老师温习 了一遍线性代数基础内容,但是我发现线性代数还是存在很多问题。在评论区找到了3Blue1Brown的视频链接,觉得他讲的线性代数在空间上的思维解释非常舒服,所以打算先看完这个系列视频,再继续李沐老师的课。

python对于矩阵和向量的一些操作基础代码如下:

 1 import torch
 2 
 3 #将向量视为标量值组成的列表
 4 x=torch.arange(6)
 5 print(x)
 6 print(x[4])
 7 print(len(x))
 8 print(x.shape)
 9 
10 #创建一个矩阵
11 A=torch.arange(20).reshape(5,4)
12 print("原始的A: \n",A)
13 print("A的转置: \n",A.T)
14 
15 # 对称矩阵,自己和自己的转置相等
16 B=torch.tensor([[1,2,3],[2,0,4],[3,4,5]])
17 print(B,'\n',B.T)
18 print(B==B.T)
19 
20 # 深复制
21 A=torch.arange(20).reshape(4,5)
22 B=A.clone()
23 print(A+B)
24 print(A*B) #两个矩阵按元素乘
25 print(A)
26 print(A.sum(axis=0,keepdims=True)) #按照axis轴求和,并保持维度不变(false会降维)也可以把sum改成mean求均值
27 # 按照哪个axis求和,其实就是把那一个维度“消掉”,也就是按照那个维度把矩阵拍扁
28 # shape[2,5,4],倒着看,按照axis=1求和,则得到【2,4】;按照axis=2,则得到【5,4】;aixs=0则得到【2,5】
29 # 如果keepdims保持为true,则把要消去的dimension改成1
30 
31 # 矩阵与向量乘法
32 x=torch.tensor([2,2,2,2,2])
33 print(A.shape,x.shape)
34 C=torch.mv(A,x)     #矩阵向量乘积
35 print(C.shape,'\n',C)
36 
37 B=torch.arange(15).reshape(5,3)
38 print(B)
39 print(torch.mm(A,B)) #矩阵乘以矩阵
40 
41 x=torch.tensor([3.0,4.0])
42 # L1范数:向量元素的绝对值之和
43 print(torch.abs(x).sum())
44 # L2范数:向量元素的平方和的平方根
45 print(torch.norm(x))
46 
47 # 矩阵的F范数:矩阵元素的平方和的平方根
48 print(torch.norm(torch.ones(4,9)))

 

posted @ 2021-12-28 14:32  爱和九九  阅读(78)  评论(0)    收藏  举报