PyTorch线性代数操作详解:点积、矩阵乘法、范数与轴求和

本文通过代码示例详细讲解PyTorch中常用的线性代数操作,包括点积、矩阵乘法、范数计算以及按轴求和等操作,帮助读者掌握张量运算的核心方法。


1. 点积运算

点积(Dot Product)是两个向量对应元素相乘后求和的结果。
实现代码

python 复制代码
import torch

x = torch.tensor([0, 1, 2, 3], dtype=torch.float32)
y = torch.ones(4, dtype=torch.float32)
x, y, torch.dot(x, y)  # 计算点积

输出结果

bash 复制代码
(tensor([0., 1., 2., 3.]), tensor([1., 1., 1., 1.]), tensor(6.))

等价实现方式:

python 复制代码
torch.sum(x * y)  # 通过逐元素乘法和求和实现点积

输出

bash 复制代码
tensor(6.)

2. 矩阵与向量乘法

使用 torch.mv 实现矩阵与向量的乘法。
代码示例

python 复制代码
x = torch.arange(12).reshape((3, 4)).float()
y = torch.ones(4, dtype=torch.float32)
x.shape, y.shape, torch.mv(x, y)  # 矩阵形状、向量形状及乘法结果

输出

bash 复制代码
(torch.Size([3, 4]), torch.Size([4]), tensor([ 6., 22., 38.]))

3. 矩阵与矩阵乘法

使用 torch.mm 实现矩阵与矩阵的乘法。
代码示例

python 复制代码
b = torch.ones(4, 3).float()
torch.mm(x, b)  # 3x4矩阵与4x3矩阵相乘

输出

bash 复制代码
tensor([[ 6.,  6.,  6.],
        [22., 22., 22.],
        [38., 38., 38.]])

4. 范数计算

L2范数(欧几里得范数)

python 复制代码
torch.norm(y)  # 计算向量y的L2范数

输出

bash 复制代码
tensor(2.)

L1范数(绝对值之和)

python 复制代码
torch.abs(y).sum()  # 计算向量y的L1范数

输出

bash 复制代码
tensor(4.)

Frobenius范数(矩阵范数)

python 复制代码
torch.norm(x)  # 计算矩阵x的F范数

输出

bash 复制代码
tensor(22.4944)

5. 按轴求和

沿指定轴求和并保留维度

python 复制代码
sum_x = x.sum(axis=0, keepdim=True)  # 沿水平方向求和,保留维度
sum_x

输出

bash 复制代码
tensor([[12., 15., 18., 21.]])

三维张量的轴求和

python 复制代码
a = torch.ones((2, 5, 4))
a.shape  # 初始形状

输出

bash 复制代码
torch.Size([2, 5, 4])
对多个轴求和
python 复制代码
a.sum(axis=[0, 2], keepdim=True).shape  # 沿第0和第2轴求和

输出

bash 复制代码
torch.Size([1, 5, 1])
单轴求和保留维度
python 复制代码
a.sum(axis=1, keepdim=True).shape  # 沿第1轴求和并保留维度

输出

bash 复制代码
torch.Size([2, 1, 4])

总结

本文演示了PyTorch中常用的线性代数操作,包括:

  • 点积torch.dot 或逐元素乘法后求和;

  • 矩阵乘法torch.mv(矩阵与向量)、torch.mm(矩阵与矩阵);

  • 范数计算:L1、L2和Frobenius范数;

  • 轴求和 :通过 sum(axis) 控制求和方向,keepdim 保留维度。

这些操作是深度学习模型实现的基础,熟练掌握可提升张量运算的效率和代码可读性。

相关推荐
小雨下雨的雨24 分钟前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
我没胡说八道3 小时前
高校论文AI检测优化工具对比研究与实测分析(2026)
人工智能·深度学习·机器学习·计算机视觉·aigc·论文
秦亚伟3 小时前
AI浪潮重塑融资租赁行业新格局
人工智能
love530love3 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
元启数宇3 小时前
喷淋AI布点实战:8小时人工布点→20分钟自动出图
人工智能
哈哈,柳暗花明3 小时前
人工智能专业术语详解(H)
人工智能·专业术语
圣殿骑士-Khtangc3 小时前
AI 编程工具 2026 实战横评:Cursor 3 vs Claude Code vs Copilot,开发者选型完全指南
人工智能·copilot
云器科技3 小时前
云器Lakehouse 2026年5月版本发布:拥抱 AI Agent,重塑数据智能开发新范式
人工智能
小鹰-上海鹰谷-电子实验记录本3 小时前
第六届党建引领科创生态座谈会 | 邓光辉博士出席分享AI赋能创新药科研新范式
人工智能·ai·电子实验记录本·药企合规
遇事不決洛必達3 小时前
【Python基础】GIL 锁是什么及其对爬虫的影响
爬虫·python·线程·进程·gil锁