四、pytorch的低阶API:2.张量的数学运算

本文是对eat pytorch in 20 day做的笔记

  1. 标量运算
    标量运算的特点是对张量逐元素运算
+-*/**%//>=&|、……
torch.sqrt()#开方
torch.round(x) #保留整数部分,四舍五入
torch.floor(x) #保留整数部分,向下归整
torch.ceil(x)  #保留整数部分,向上归整
torch.trunc(x) #保留整数部分,向0归整
torch.clamp(x,min,max)#幅值裁剪
  1. 向量运算
    向量运算符在一个特定轴上运算
a = torch.arange(1,10).float()
torch.sum(a)
torch.mean(a)
torch.max(a)
torch.min(a)
torch.prod(a) #累乘
torch.std(a)  #标准差
torch.var(a)  #方差
torch.median(a) #中位数
#如果a是矩阵,还有一个参数dim,不仅会返回值,还会返回dim下的index
#cum扫描,tensor大小不变,下一个数是和前面数的累计运算
torch.cumsum(a,0)
torch.cumprod(a,0)
torch.cummax(a,0).values
torch.cummax(a,0).indices
torch.cummin(a,0)
#排序
torch.topk(a,2,dim = 0)
torch.topk(a,2,dim = 1)
torch.sort(a,dim = 1)
  1. 矩阵运算
#矩阵乘法
a@b、torch.matmul(a,b)、torch.mm(a,b)
#矩阵转置
a.t()、torch.transpose()
#矩阵求逆(必须为浮点)
torch.inverse()
#矩阵求迹
torch.trace()
#矩阵求范数(所有元素的平方和开根号)
torch.norm()
#矩阵行列式
torch.det()
#矩阵特征值
torch.eig(a,eigenvectors=True)
#QR分解:将一个方阵分解为正交矩阵和上三角矩阵
q,r=torch.qr(a)
#svd分解:将任意矩阵分解为正交矩阵、对角矩阵和正交矩阵
u,s,v=torch.svd()
  1. 广播机制
torch.broadcast_tensors(a,b)#可以将多个张量根据广播规则转换成相同的维度。
#两个张量的某一维度相同或者其中一个维度是1,那么它们在这个维度上是相容的。两个张量相容,就可以使用广播,每个维度扩展到二者该维度的最大值。不使用广播,只要相容,在操作时也会自动扩展。

你可能感兴趣的:(pytorch,python,pytorch)