pytorch:张量的数学计算


import torch

# 计算转置
a = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
print(a)
print(a.t())


# 计算逆矩阵
b = torch.inverse(a)
print(b)
print(a@b)

# 计算trace
print(torch.trace(a))


# 计算范数
print(torch.norm(a, dim=-1, p=1))


# 计算行列式
print(torch.det(a))


# 计算特征值和特征向量
print(torch.eig(a,eigenvectors=True))


#矩阵QR分解, 将一个方阵分解为一个正交矩阵q和上三角矩阵r
#QR分解实际上是对矩阵a实施Schmidt正交化得到q, q为正交矩阵,r为上三角矩阵,a=q@r
q,r = torch.qr(a)
print(q)
print(r)
print(q@r)


#矩阵svd分解
#svd分解可以将任意一个矩阵分解为一个正交矩阵u,一个对角阵s和一个正交矩阵v.t()的乘积
#svd常用于矩阵压缩和降维
u,s,v = torch.svd(a)

print(u)
print(s)
print(v)

print(u@torch.diag(s)@v.t())

```python

你可能感兴趣的:(pytorch,深度学习,线性代数)