学习笔记(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,:] 的所有元素。
  • 以此类推。
相关推荐
岑梓铭17 分钟前
考研408《计算机组成原理》复习笔记,第六章(1)——总线概念
笔记·考研·408·计算机组成原理·计组
Suckerbin29 分钟前
digitalworld.local: TORMENT
笔记·安全·web安全·网络安全
凯尔萨厮1 小时前
Java学习笔记三(封装)
java·笔记·学习
YoungUpUp1 小时前
【文件快速搜索神器Everything】实用工具强推——文件快速搜索神器Everything详细图文下载安装教程 办公学习必备软件
学习·everything·文件搜索·实用办公软件·everything 工具·文件快速搜索·搜索神器
RaLi和夕1 小时前
单片机学习笔记.C51存储器类型含义及用法
笔记·单片机·学习
星梦清河2 小时前
宋红康 JVM 笔记 Day15|垃圾回收相关算法
jvm·笔记·算法
武文斌772 小时前
ARM工作模式、汇编学习
汇编·嵌入式硬件·学习·arm
岑梓铭2 小时前
计算机网络第四章(4)——网络层《ARP协议》
网络·笔记·tcp/ip·计算机网络·考研·408
lingggggaaaa2 小时前
小迪安全v2023学习笔记(八十讲)—— 中间件安全&WPS分析&Weblogic&Jenkins&Jetty&CVE
笔记·学习·安全·web安全·网络安全·中间件·wps
Jayyih3 小时前
嵌入式系统学习Day36(简单的网页制作)
学习·算法