Pytorch 学习3:张量的广播和科学运算
一、广播
1 同形状的张量计算
张量批量计算都存在广播,对应元素直接做相同运算即可。
2 不同形状张量计算
2.1 标量 和 任意形状的张量
标量可以和任意形状张量进行计算
2.2 相同维度、不同形状张量之间的计算
情况一:
情况二:
情况三:
总结:
①维度相同,分量有不同;②不同的那个分量有其中一个等于 “1”。满足这两个条件:系统把 “ 不够的补全 ” 即可运算。
自己总结:分量“ 1 ” 可随意变,变后能同维同形即可广播。
2.3 不同维度的张量计算过程中广播
低维升维用 1 填充即可
提示:升维可以用 .unsqueeze()
也可以用 .reshape()
方法
二、逐点运算
逐点运算主要包括数学基本运算、数值调整运算和数据科学运算三块,相关函数如下
- 排序计算
升序 torch.sort(t)
降序torch.sort(t, descending = True)
三、规约运算
- dist 计算距离
讲解:torch.sun() , torch.sort()
四、比较运算
五、线性代数运算
5.1 BLAS 和 LAPACK 概览
这两个模块提供了完整的线性代数基本方法,分类如下:
5.2 矩阵的形变及特殊矩阵的构造方法
5.3 矩阵的基本运算
.dot/.vdot 只能用于一维张量的运算,
特殊:矩阵和向量相乘的函数,矩阵和向量的相乘的过程我们可以看成是先将向量转化为列向量然后再相乘。
5.4 矩阵的线性代数的运算
- inverse 函数 :求解逆矩阵,用法:A 的逆矩阵:
torch.inverse(A)
5.5 矩阵的分解
torch.eig 函数:特征分解