pytorch中的逐元素、归并操作、比较以及线性代数

1.逐元素操作

这部分操作会对tensor的每一个元素(element-wise)进行操作,此类操作的输入与输出形状一致。

  1. abs/sqrt/div/exp/fmod/log/pow     绝对值/平方根/除法/指数/求余/求幂
  2. cos/sin/asin/atan2/cosh     三角函数
  3. ceil/round/floor/trunc        上取整/四舍五入/下取整/只保留整数部分
  4. clamp(input,min,max)       超过min和max的部分进行阶段
  5. sigmoid/tanh       激活函数

对于很多操作,如div、mul、pow、fmod等,PyTorch都实现了运算符重载,所以可以直接使用运算符。如a**2等价于torch.pow(a,2),等价于torch.mul(a,2)

2.归并操作

此类操作会使输出形状小于输入形状,并可以沿着某一维度进行指定操作。如加法sum,既可以计算整个tensor的和,也可以计算tensor中每一行或每一列的和。

  1. mean/sum/median/mode        均值/和/中位数/众数
  2. norm/dist        范数/距离
  3. std/var        标准差/方差
  4. cumsum/cumprod        累加/累乘

以上大多数函数都有一个参数dim,用来指定这些操作是在哪个维度上执行的。

假设输入的形状是(m,n,k):

  • 如果指定dim=0,输出的形状就是(1,n,k)或者(n,k);
  • 如果指定dim=1,输出的形状就是(m,1,k)或者(m,k);
  • 如果指定dim=2,输出的形状就是(m,n,1)或者(m,n)。

size中是否有1,取决于参数keepdim,keepdim=True会保留维度1,keepdim默认为False。

3.比较

比较函数中有一些是逐元素比较,操作类似于逐元素操作,还有一些则类似于归并操作。

  1. gt/lt/ge/le/eq/ne        大于/小于/大于等于/小于等于/等于/不等于
  2. topk        最大的k个数
  3. sort        排序
  4. max/min       比较两个tensor的最大值和最小值

如max()函数:

  • t.max(tensor):返回tensor中最大的一个数。
  • t.max(tensor,dim):指定维度上最大的数,返回tensor和下标。
  • t.max(tensor1,tensor2):比较两个tesor相比最大的元素

4.线性代数

PyTorch的线性函数主要封装了Blas和Lapack,其用法和接口都与之类似。

  1. trace    对角线元素之和(矩阵的迹)
  2. diag    对角线元素
  3. triu/tril    矩阵的上三角/下三角,可指定偏移量
  4. mm/bmm    矩阵乘法,batch的矩阵乘法
  5. addmm/addbmm/addmv    矩阵运算
  6. t    转置
  7. dot/cross  内积/外积
  8. inverse    求逆运算
  9. svd    奇异值分解

注意:矩阵的 转置会导致存储空间不连续,需调用它的.contiguous方法将其转为连续。

 

 

 

 

 

 

你可能感兴趣的:(pytorch)