马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
torch.linalg 是 PyTorch 的 线性代数 (Linear Algebra) 子模块,它提供了很多 高效的矩阵操纵和分解方法,雷同于 NumPy 的 numpy.linalg 或 SciPy 的 scipy.linalg,但针对 GPU 加快和自动微分 举行了优化。
1. 矩阵根本运算
矩阵乘法
- torch.linalg.matmul:实行两个张量的矩阵乘法。它可以处理处罚多种情况,包罗批量矩阵乘法。
- import torch
- # 创建两个矩阵
- A = torch.tensor([[1, 2], [3, 4]])
- B = torch.tensor([[5, 6], [7, 8]])
- result = torch.linalg.matmul(A, B)
- print(result)
复制代码 矩阵转置
- torch.linalg.t:用于盘算矩阵的转置。
- import torch
- A = torch.tensor([[1, 2], [3, 4]])
- transposed_A = torch.linalg.t(A)
- print(transposed_A)
复制代码 2. 矩阵分解
奇特值分解(SVD)
- import torch
- A = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
- U, S, Vh = torch.linalg.svd(A)
- print("U:", U)
- print("S:", S)
- print("Vh:", Vh)
复制代码 QR 分解
- torch.linalg.qr:将矩阵分解为一个正交矩阵 和一个上三角矩阵 的乘积,即 A= QR
- import torch
- A = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
- Q, R = torch.linalg.qr(A)
- print("Q:", Q)
- print("R:", R)
复制代码 3. 矩阵的特性值和特性向量
盘算特性值和特性向量
- torch.linalg.eig:用于盘算方阵的特性值和特性向量。对于实对称矩阵,可以利用 torch.linalg.eigh以得到更高的服从。
- import torch
- A = torch.tensor([[1, 2], [2, 1]], dtype=torch.float32)
- eigenvalues, eigenvectors = torch.linalg.eig(A)
- print("Eigenvalues:", eigenvalues)
- print("Eigenvectors:", eigenvectors)
复制代码 4. 求解线性方程组
- import torch
- # 系数矩阵 A
- A = torch.tensor([[3, 1], [1, 2]], dtype=torch.float32)
- # 常数向量 b
- b = torch.tensor([9, 8], dtype=torch.float32)
- x = torch.linalg.solve(A, b)
- print("Solution x:", x)
复制代码 5. 矩阵的范数盘算
盘算矩阵的范数
- torch.linalg.norm:用于盘算矩阵或向量的范数,支持多种范数范例,如 1 - 范数、2 - 范数、无穷范数等。
- import torch
- A = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
- norm_2 = torch.linalg.norm(A, ord=2)
- print("2 - norm of A:", norm_2)
复制代码 torch.linalg 模块为 PyTorch 用户提供了一套完备的线性代数工具,这些功能在呆板学习、深度学习、盘算机图形学等范畴都有广泛的应用,比方在优化算法、降维技能、图像和信号处理处罚等方面。
|