torch.linalg 是 PyTorch 框架中的一个模块,它提供了一系列线性代数运算。这个模块在 PyTorch 2.0 中被引入,是为了补充现有的 torch.matmultorch.tensor 运算,提供更全面的线性代数功能。torch.linalg 模块包含了一些线性代数的核心操作,例如矩阵分解、特征值和特征向量计算等。
以下是一些 torch.linalg 模块中常见函数的例子:

  1. torch.linalg.norm(tensor, p=2, dim=None, keepdim=False, out=None): 计算张量的 p 范数。默认情况下,p=2 计算的是欧几里得范数,即通常所说的“长度”。
  2. torch.linalg.inv(tensor): 计算张量的逆。只有当张量是方阵(行数和列数相等)且有非零行列式时,才能计算逆。
  3. torch.linalg.eig(tensor): 计算张量的特征值和对应的特征向量。这个函数可以返回特征值和特征向量的 tensors。
  4. torch.linalg.eigh(tensor): 类似 eig,但是专门用于对称或埃尔米特矩阵,它计算的是特征值和对应的特征向量。
  5. torch.linalg.qr(tensor): 计算张量的 QR 分解,其中 Q 是一个正交矩阵,而 R 是一个上三角矩阵。
  6. torch.linalg.svd(tensor): 计算张量的奇异值分解(SVD),返回 U、s 和 Vh 三个张量,其中 U 和 Vh 都是正交矩阵,s 是一个对角矩阵。
  7. torch.linalg.cholesky(tensor): 计算张量的 Cholesky 分解,仅适用于平方且正定的二阶张量。
    torch.linalg 模块的功能非常强大,使得在 PyTorch 中进行复杂的线性代数运算变得更为方便。这个模块的设计目的是为了提供易于使用的接口,同时保持高性能和精确的控制能力。随着 PyTorch 的发展,torch.linalg 模块将得到进一步的增强和完善。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐