已解决
【动手学深度学习】课程笔记 05-07 线性代数、矩阵计算和自动求导
来自网友在路上 169869提问 提问时间:2023-11-07 01:04:49阅读次数: 69
最佳答案 问答题库698位专家为你答疑解惑
05 线性代数
1. 基础知识补充
向量相关
矩阵相关
简单来说,范数是用来衡量矩阵(张量)大小的值,范数的值有不同的规定。
2. 代码实现
仅记录一些我比较陌生的知识。
张量的克隆
A = torch.arange(20, dtype=torch.float32).reshape(5, 4)
B = A.clone() # 通过分配新内存,将A的一个副本分配给B
A, A + B
张量的降维
首先定义一个张量x,指定其元素的数据类型为32位的float:
x = torch.arange(4, dtype=torch.float32)
x, x.sum()
接着调用求和函数,因为会对张量中的一些维度进行求和,求和后就相当于是降维了,这里的维度用轴axis来表示,0表示行,1表示列,下面是对行和列同时求和:
A.sum(axis=[0, 1]) # 结果和A.sum()相同
axis = 0按照行,可以理解为把“行”给抹去只剩1行,也就是上下压扁。
axis = 1按照列,可以理解为把“列”给抹去只剩1列,也就是左右压扁。
点积
给定两个向量,它们的点积就是相同位置的元素乘积之和:
y = torch.ones(4, dtype = torch.float32)
x, y, torch.dot(x, y)
矩阵-向量积、矩阵-矩阵积
矩阵和向量相乘:
A.shape, x.shape, torch.mv(A, x)
矩阵和矩阵相乘:
B = torch.ones(4, 3)
torch.mm(A, B)
范数
向量的范数表示一个向量有多大,这里的大小不涉及维度,指的是分量的大小。
常用的L2范数表示向量元素平方和的平方根,其实是将向量输入一个求平方和平方根的函数,就输出这个向量对应的L2范数:
u = torch.tensor([3.0, -4.0])
torch.norm(u)
这也是唯一一个pytorch中定义的求范数函数,还有一个常用范数叫L1范数,其实就是元素的绝对值之和,它就没有特定的函数来计算了,因为比较好实现:
torch.abs(u).sum()
前两个是对于向量来说的,矩阵的范数一般用的是Frobenius范数,它和L2范数一样,都是求平方和的平方根:
torch.norm(torch.ones((4, 9)))
查看全文
99%的人还看了
相似问题
- 23. 深度学习 - 多维向量自动求导
- 【腾讯云云上实验室-向量数据库】探索腾讯云向量数据库:全方位管理与高效利用多维向量数据的引领者
- 分类预测 | Matlab实现基于DBN-SVM深度置信网络-支持向量机的数据分类预测
- 【VRTK】【VR开发】【Unity】7-配置交互能力和向量追踪
- 【腾讯云云上实验室-向量数据库】TAI时代的数据枢纽-向量数据库 VectorDB
- 计算两个向量的叉积numpy.cross()
- LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索Indexes for information retrieve
- 《向量数据库指南》——什么是 向量数据库Milvus Cloud的Range Search?
- 《向量数据库指南》——亚马逊云科技向量数据库揭秘:点亮数据未来!
- 亚马逊云Amazon OpenSearch Serverless“利刃在手,‘向量’八方“
猜你感兴趣
版权申明
本文"【动手学深度学习】课程笔记 05-07 线性代数、矩阵计算和自动求导":http://eshow365.cn/6-34089-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!