学习笔记(25):线性代数,矩阵-矩阵乘法原理

学习笔记(25):线性代数,矩阵-矩阵乘法原理

1、代码

python 复制代码
import torch
A = torch.arange(20).reshape(5, 4)
print(A)
A = A.to(torch.float32)  # 或使用A.float()

B = torch.ones(4, 3)
print(B)
print(torch.mm(A, B))

2、执行结果

tensor(\[ 0, 1, 2, 3,

4, 5, 6, 7,

8, 9, 10, 11,

12, 13, 14, 15,

16, 17, 18, 19])

tensor(\[1., 1., 1.,

1., 1., 1.,

1., 1., 1.,

1., 1., 1.])

tensor(\[ 6., 6., 6.,

22., 22., 22.,

38., 38., 38.,

54., 54., 54.,

70., 70., 70.])

计算原理解释:

要计算 torch.mm(A, B)(矩阵乘法),需要确保 A 的列数等于 B 的行数。在你的例子中:

  • A 是一个 5×4 的矩阵(5 行 4 列)。
  • B 是一个 4×3 的矩阵(4 行 3 列)。

由于 A 的列数(4)等于 B 的行数(4) ,因此可以进行矩阵乘法,结果将是一个 5×3 的矩阵。

矩阵乘法原理

矩阵乘法 C = A × B 的计算规则是:

  • C 的行数等于 A 的行数(5 行)。
  • C 的列数等于 B 的列数(3 列)。
  • C 中每个元素 C[i,j] 等于 A 的第 i 行与 B 的第 j 列对应元素的乘积之和。

计算步骤示例

以结果矩阵 C 的第一行第一列元素 C[0,0] 为例:

  1. 取 A 的第 0 行 :[0, 1, 2, 3]
  2. 取 B 的第 0 列 :[1., 1., 1., 1.]
  3. 对应元素相乘后求和:\((0 \times 1) + (1 \times 1) + (2 \times 1) + (3 \times 1) = 0 + 1 + 2 + 3 = 6\)

同理,计算其他元素:

  • C[0,1] = (0×1) + (1×1) + (2×1) + (3×1) = 6
  • C[0,2] = (0×1) + (1×1) + (2×1) + (3×1) = 6
  • 以此类推,最终得到整个矩阵 C。

A=tensor(\[ 0, 1, 2, 3,

4, 5, 6, 7,

8, 9, 10, 11,

12, 13, 14, 15,

16, 17, 18, 19])

B=tensor(\[1., 1., 1.,

1., 1., 1.,

1., 1., 1.,

1., 1., 1.])

结果:

tensor(\[ 6., 6., 6.,

22., 22., 22.,

38., 38., 38.,

54., 54., 54.,

70., 70., 70.])

验证方法

由于 B 的所有元素都是 1,因此结果矩阵 C 的每个元素 C[i,j] 实际上等于 A 的第 i 行的所有元素之和。例如:

  • A 的第 0 行和为 0+1+2+3=6,对应 C 0,: 的所有元素。
  • A 的第 1 行和为 4+5+6+7=22,对应 C 1,: 的所有元素。
  • 以此类推。
相关推荐
GEO从入门到精通9 小时前
课程怎么选?2026年GEO学习资源全梳理
学习
优化Henry10 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
xiaomu0012310 小时前
高湿环境床垫湿度管理技术框架:湿度阈值、排湿结构与材料选型
经验分享·学习·学习方法
zhangrelay11 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
probex_11 小时前
学习笔记:知识图谱是什么,在测试里能干什么
笔记·学习·知识图谱
以为你知道啊12 小时前
90年代复古博客
笔记
苏打豆12 小时前
Pinocchio源码阅读——刚体运动物理量空间变换及求导
c++·线性代数·算法·矩阵·机器人
波力海苔夹心脆67512 小时前
C# 值类型与引用类型详解:存储位置、赋值机制、参数传递、相等比较、装箱拆箱与常见陷阱
开发语言·jvm·经验分享·笔记·c#·.net
每天题库14 小时前
危险货物道路运输从业资格证题库刷题重点与错题梳理
学习·安全·考试·题库·考证
m4Rk_14 小时前
【论文阅读】Agent 记忆机制(86):Skill-Pro——用 Non-Parametric PPO 将交互经验演化为可复用技能
论文阅读·人工智能·学习·开源·github