动手学深度学习(PyTorch版)- 【读书活动-心得分享】pytorch 线形代数相关操作
[复制链接]
本帖最后由 御坂10032号 于 2024-10-20 04:50 编辑
简介
本章节我们将继续学习Pytorch的前置内容, 关于线形代数的相关操作. 我这里使用的是谷歌的colab, 在本章节的最后我会分享本章节的代码文件.
正文
1、标量
标量指的是只有一个元素的张量, 我们可以使用 torch.tensor() 来快速的创建一个标量, 并且可以使用标量来进行一些基本的数据操作
2、向量
向量可以理解为一堆标量组成的数值, 可以理解为数组等. 我们可以使用下面的API来快速的创建向量
在创建向量的时候只需要注意, range 并不包括第二个参数. 我们同时也可以使用len() 来访问向量的长度
3、矩阵
对于矩阵的理解可以理解为向量的拓展, 即多维数组, 如果当一个矩阵的行和列相等的话, 我们可以称这个矩阵为方阵, square matrix
我们可以使用下面的API来快速的创建一个矩阵
上述使用了torch,range创建了一个长度为20的向量, 范围为0 - 19 , 之后通过reshape function来使其向量变成了一个 4 * 5 的矩阵 (20个元素)
我们可以使用矩阵的.T 方法(transpose) 来转制一个矩阵, 即矩阵的行变成列, 列变成行, 那么上述的矩阵经过转制后则变成了下述所示.
如果当前的矩阵是一个对称矩阵的话, 那么对矩阵进行转置, 转置后的矩阵将会等于原本的矩阵.
4、张量
张量这里书上讲的有一点抽象, 就像向量是标量的推⼴,矩阵是向量的推⼴⼀样,我们可以构建具有更多轴的数据结构. 我的个人理解是,张量就是多个二维数组的组合.比如说
在上述的代码中,我们使用了arange来指定了一个元素的区间,然后使用reshape function来将这个向量转换成张量 即两个3* 4 的矩阵, 并且同时我们可以使用上述的张量进行一些数学操作.
有一点需要注意的是, 如果我们使用一个张量对一个标量进行数据操作的时候, 输出的结果并不会影响张量的形状.
5- 数据的降维
数据的降维是指将高维数据转换为低维数据的过程,同时尽量保留原始数据中最重要的结构和信息。降维的目的是减少数据的复杂性,去除冗余信息,便于分析、可视化和建模。降维技术在处理高维数据(如图像、文本或基因表达数据)时尤其有用,因为高维数据可能存在"维度灾难"问题,导致模型性能下降或计算成本过高。
同样可以指定,对哪一个数据的轴进行降维。
上述的代码演示了基于数据轴的两个轴进行降维, 分别是轴0 即X轴, 轴1即Y轴。
同时在求和的时候也可以保证维度的不变.
6- 点积
点积为矩阵相同元素的相乘的和, 比如说下述的操作, 实际上为数组上中每个位置中的元素乘另一个数组内相同位置的和.
向量积,矩阵乘法和范数,我还没有搞明白, 还需要额外的再补一下数学知识, 看书没有看懂
|