动手学深度学习2025.2.23-预备知识之-线性代数
3.线性代数
(1)向量维数和张量维数的区别:

(2)普通矩阵乘法:

要求左矩阵的列数等于右矩阵的行数
import torch
# 创建两个矩阵
A = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
B = torch.tensor([[5, 6], [7, 8]], dtype=torch.float32)
# 使用 torch.matmul() 进行矩阵乘法
result1 = torch.matmul(A, B)
print("使用 torch.matmul() 的结果:")
print(result1)
# 使用 @ 运算符进行矩阵乘法
result2 = A @ B
print("使用 @ 运算符的结果:")
print(result2)
>>> B = torch.ones(4, 3)
>>> torch.mm(A,B)
tensor([[ 6., 6., 6.],[22., 22., 22.],[38., 38., 38.],[54., 54., 54.],[70., 70., 70.]])
>>> B
tensor([[1., 1., 1.],[1., 1., 1.],[1., 1., 1.],[1., 1., 1.]])
>>> A
tensor([[ 0., 1., 2., 3.],[ 4., 5., 6., 7.],[ 8., 9., 10., 11.],[12., 13., 14., 15.],[16., 17., 18., 19.]])
-
torch.mm只能处理二维张量的矩阵乘法。 -
torch.matmul更加灵活,它可以处理多种情况,包括二维矩阵乘法、批量矩阵乘法等。例如,当输入是三维张量时,torch.matmul会按照批量矩阵乘法的规则进行计算,而torch.mm则会报错。
(3)逐元素乘法(Hadamard 积)
要求两个矩阵的形状完全相同,对应位置的元素相乘.
用*号,就像加法一样,加法也是逐元素加法
import torch
# 创建两个矩阵
A = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
B = torch.tensor([[5, 6], [7, 8]], dtype=torch.float32)
# 逐元素乘法
result = A * B
print("逐元素乘法的结果:")
print(result)
(4)范数:

一个向量空间 V 上的范数是一个函数 ∥⋅∥:V→R,它满足以下性质:
-
非负性:对于所有 v∈V,有 ∥v∥≥0,且 ∥v∥=0 当且仅当 v=0。
-
齐次性:对于所有 v∈V 和所有标量 c,有 ∥cv∥=∣c∣∥v∥。
-
三角不等式:对于所有 u,v∈V,有 ∥u+v∥≤∥u∥+∥v∥。
(5)降维:

# 创建一个二维张量A = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)A
tensor([[1., 2.],[3., 4.]])
# 沿着第 0 维(列方向,垂直方向)求和sum_along_dim0 = torch.sum(A, dim=0)print("沿着第 0 维求和的结果:", sum_along_dim0)
#沿着第 0 维求和的结果: tensor([4., 6.])
# 沿着第 1 维(行方向,水平方向)求和sum_along_dim1 = torch.sum(A, dim=1)print("沿着第 1 维求和的结果:", sum_along_dim1)
#沿着第 1 维求和的结果: tensor([3., 7.])
# 对于更高维度的张量,例如三维张量B = torch.tensor([[[1, 2], [3, 4]],[[5, 6], [7, 8]]], dtype=torch.float32)B
tensor([[[1., 2.],[3., 4.]],
[[5., 6.],[7., 8.]]])# 沿着第 0 维(这里是堆叠维度)求和sum_B_along_dim0 = torch.sum(B, dim=0)print("三维张量沿着第 0 维求和的结果形状:", sum_B_along_dim0.shape)
#三维张量沿着第 0 维求和的结果形状: torch.Size([2, 2])
实际应用场景:
-
图像数据处理:在处理图像数据时,图像通常表示为三维张量(高度、宽度、通道数)。如果我们想将图像的颜色通道信息进行合并,可以沿着通道维度求和,将三维图像张量降为二维。
-
序列数据处理:在处理序列数据(如文本)时,序列通常表示为二维或更高维的张量。沿着序列长度维度求和,可以将序列信息进行聚合,得到整个序列的综合表示。
还可以通过求平均数进行降维:
>>> A = torch.arange(20, dtype=torch.float32).reshape(5, 4)
>>> A
tensor([[ 0., 1., 2., 3.],[ 4., 5., 6., 7.],[ 8., 9., 10., 11.],[12., 13., 14., 15.],[16., 17., 18., 19.]])
>>> A_sum_axis0 = A.sum(axis=0)
>>> A_sum_axis0,A_sum_axis0.shape
(tensor([40., 45., 50., 55.]), torch.Size([4]))
>>> A_sum_axis1 = A.sum(axis=1)
>>> A_sum_axis1,A_sum_axis1.shape
(tensor([ 6., 22., 38., 54., 70.]), torch.Size([5]))
>>> A.sum(axis=[0,1])
tensor(190.)
>>> A.mean(),A.sum()/A.numel() #这里就是通过求平均数来降维
(tensor(9.5000), tensor(9.5000))
>>> A.mean(axis=0),A.sum(axis=0)/A.shape[0]
(tensor([ 8., 9., 10., 11.]), tensor([ 8., 9., 10., 11.]))
>>>
非降维求和:
>>> sum_A=A.sum(axis=1,keepdims=True)
>>> sum_A
tensor([[ 6.],[22.],[38.],[54.],[70.]])
>>> A/sum_A
tensor([[0.0000, 0.1667, 0.3333, 0.5000],[0.1818, 0.2273, 0.2727, 0.3182],[0.2105, 0.2368, 0.2632, 0.2895],[0.2222, 0.2407, 0.2593, 0.2778],[0.2286, 0.2429, 0.2571, 0.2714]])
#沿着张量 A 的第 0 维(通常对应列方向,垂直方向)进行累积求和操作
>>> A.cumsum(axis=0)
tensor([[ 0., 1., 2., 3.],[ 4., 6., 8., 10.],[12., 15., 18., 21.],[24., 28., 32., 36.],[40., 45., 50., 55.]])
>>>
cumsum累积求和的过程:

相关文章:
动手学深度学习2025.2.23-预备知识之-线性代数
3.线性代数 (1)向量维数和张量维数的区别: (2)普通矩阵乘法: 要求左矩阵的列数等于右矩阵的行数 import torch # 创建两个矩阵 A torch.tensor([[1, 2], [3, 4]], dtypetorch.float32) B torch.tensor([[5, 6], [7, 8]], d…...
登录-07.JWT令牌-登录后下发令牌
一.思路 我们首先完成令牌生成。 在响应数据这一块 该响应数据是一个标准的Result结构,其中"data"的值就是一个JWT令牌。因此我们只需要将生成的JWT令牌封装在Result当中然后返回给前端即可。 备注是给前端看的,不用管。以后我们做校验时&…...
机器学习实战(7):聚类算法——发现数据中的隐藏模式
第7集:聚类算法——发现数据中的隐藏模式 在机器学习中,聚类(Clustering) 是一种无监督学习方法,用于发现数据中的隐藏模式或分组。与分类任务不同,聚类不需要标签,而是根据数据的相似性将其划…...
【数据序列化协议】Protocol Buffers
一、为什么需要序列化? 数据跨平台/语言交互: 不同编程语言(如 Java、Python、Go)的数据结构不兼容,序列化提供统一的数据表示。例如:Java 的 HashMap 和 Python 的 dict 需转换为通用格式(如 …...
基于 Python 的电影市场预测分析系统设计与实现(源码 + 文档)
大家好,今天要和大家聊的是一款基于 Python 的“电影市场预测分析”系统的设计与实现。项目源码以及部署相关事宜请联系我,文末附上联系方式。 项目简介 基于 Python 的“电影市场预测分析”系统主要面向以下用户角色:电影制片方、电影发行…...
计算机三级网络技术知识汇总【6】
第六章 交换机及其配置 1. 交换机基础 1.1 基本概念 局域网交换机是一种基于 MAC 地址识别,完成转发数据帧功能的一种网络连接设备。 工作在数据链路层,根据进入端口数据帧中的 MAC 地址进行数据帧的过滤、转发(也是交换机的工作原理&…...
2025教育与科研领域实战全解析:DeepSeek赋能细分场景深度指南(附全流程案例与资源)
🚀 2025教育与科研领域实战全解析:DeepSeek赋能细分场景深度指南(附全流程案例与资源)🚀 📚 目录 DeepSeek在教育与科研中的核心价值教学场景应用:从备课到课堂管理的全流程革新科研场景应用:从数据分析到论文写作的智能跃迁师生协同创新:AI赋能的个性化学习与科研…...
Linux 命令大全完整版(10)
4. 压缩与解压缩命令 gzip(gnu zip) 功能说明:压缩文件。语 法:gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][–best/fast][文件…] 或 gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][–best/f…...
彻底卸载kubeadm安装的k8s集群
目录 一、删除资源 二、停止k8s服务 三、重置集群 四、卸载k8s安装包 五、清理残留文件和目录 六、删除k8s相关镜像 七、重启服务器 一、删除资源 # 删除集群中的所有资源,包括 Pod、Deployment、Service,任意节点执行 kubectl delete --all pod…...
vue+element-plus简洁完美实现淘宝网站模板
目录 一、项目介绍 二、项目截图 1.项目结构图 2.首页 3.详情 4.购物车 5.登陆页 三、源码实现 1.路由配置 2.依赖包 四、总结 一、项目介绍 项目在线预览:点击访问 本项目为vue项目,参考淘宝官方样式为主题来设计元素,简洁美观&…...
学习aigc
DALLE2 论文 Hierarchical Text-Conditional Image Generation with CLIP Latents [2204.06125] Hierarchical Text-Conditional Image Generation with CLIP LatentsAbstract page for arXiv paper 2204.06125: Hierarchical Text-Conditional Image Generation with CLIP L…...
深度学习-127-LangGraph之基础知识(四)自定义状态添加额外字段的聊天机器人
文章目录 1 自定义状态2 自定义工具2.1 完善工具human_assistance2.2 浏览器工具baidu_search3 聊天机器人3.1 绑定工具的聊天模型3.2 聊天机器人(带记忆)4 调用图4.1 调用工具时中断4.2 人工提供信息恢复4.3 查询存储的状态4.4 手动更新状态5 参考附录使用LangGraph,在状态中…...
广东英语十二种应用文模版范文
1. 邀请信(Invitation Letter) 模版 Dear [Recipients Name],I hope this letter finds you well. I am writing to invite you to [Event Name] which will be held on [Date] at [Location]. The event will start at [Time] and we would be deligh…...
python使用httpx_sse调用sse流式接口对响应格式为application/json的错误信息的处理
目录 问题描述方案 问题描述 调用sse流式接口使用httpx_sse的方式 import httpxfrom httpx_sse import connect_sse# 省略无关代码try:with httpx.Client() as client:with connect_sse(client, "GET", url, paramsparam) as event_source:clear_textbox(response_t…...
Leetcode-407. Trapping Rain Water II [C++][Java]
目录 一、题目描述 二、解题思路 【C】 【Java】 Leetcode-407. Trapping Rain Water IIhttps://leetcode.com/problems/trapping-rain-water-ii/description/ 一、题目描述 Given an m x n integer matrix heightMap representing the height of each unit cell in a 2D…...
详解 torch.triu:上三角矩阵的高效构造(中英双语)
详解 torch.triu:上三角矩阵的高效构造 在深度学习和矩阵运算中,我们经常需要构造上三角矩阵(Upper Triangular Matrix),其中主对角线以下的元素全部设为 0。PyTorch 提供了一个高效的函数 torch.triu(),用…...
[ TypeScript ] “undefined extends xxx“ 总是为 true 的 bug
版本号 "typescript": "^5.7.3", "unplugin": "^2.2.0",说明 在使用 unplugin 时 , 我定义插件的参数是 必填的, 使用时却是一个可空参数, 不传参也不会报错, (options?: UserOptions) > Return 😲😲&…...
高清下载油管视频到本地
下载工具并安装: yt-dlp官网地址: GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader ffmpeg官网地址: Download FFmpeg 注:记住为其添加环境变量 操作命令: 该指令表示以720p码率下载VIDEO_UR…...
Hadoop常用操作命令
在NameNode节点格式化集群 初始化集群 hdfs namenode -format启动HDFS sbin/start-dfs.sh启动yarn sbin/start-yarn.sh启动NodeManager yarn-daemon.sh start nodemanager启动DataNode hadoop-daemon.sh start datanode启动SecondaryNameNode hadoop-daemon.sh start se…...
[HOT 100] 2439. 最小化数组中的最大值
文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 2439. 最小化数组中的最大值 - 力扣(LeetCode) 2. 题目描述 给你一个下标从 0 开始的数组 nums ,它含有 n 个非负整数。 每一步操作中&#…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
