当前位置: 首页 > news >正文

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

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

1、代码

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,:] 的所有元素。
  • 以此类推。

http://www.lqws.cn/news/180325.html

相关文章:

  • Dynamics 365 Business Central Direct Banking Extention D365 BC ERP 银行接口扩展
  • T/SAIAS 018—2025《具身智能语料库建设导则》研究报告:体系解构与实施路径
  • MyBatis 核心标签使用场景及用法详解
  • CppCon 2015 学习:Functional programming: functors and monads
  • git commit 执行报错 sh: -/: invalid option
  • FFmpeg 低延迟同屏方案
  • 局域网聊天室系统的设计与实现【源码+文档】
  • NSSCTF-WEB
  • AI量化透视:金银比突破94阈值,黄金触及4周高点+白银13年新高的联动效应建模
  • 集成电路设计:从概念到实现的完整解析优雅草卓伊凡
  • NLP学习路线图(二十九):BERT及其变体
  • 护网行动面试试题(2)
  • 去除Word文档多余的回车键
  • 如何轻松、安全地管理密码(新手指南)
  • 重构城市应急指挥布控策略 ——无人机智能视频监控的破局之道
  • 基于深度学习的无人机轨迹预测
  • Android动态广播注册收发原理
  • Android设备推送traceroute命令进行网络诊断
  • Ubuntu 系统通过防火墙管控 Docker 容器
  • Linux缓冲区与glibc封装:入门指南
  • 小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo
  • 什么是权威解析服务器?权威解析服务器哪些作用?
  • ​​高频通信与航天电子的材料革命:猎板PCB高端压合基材技术解析​​
  • 利用NVivo进行数据可视化,重塑定性研究
  • AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
  • 刷题记录(7)二叉树
  • 使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现
  • scss(sass)中 的使用说明
  • AI生成的基于html+marked.js实现的Markdown转html工具,离线使用,可实时预览 [
  • (转)什么是DockerCompose?它有什么作用?