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

【python】30、矩阵加法 tensor.sum

文章目录

  • 一、tensor.sum

一、tensor.sum

为了更好地理解 `torch.sum` 函数中 `dim` 参数的作用,我们可以将三维张量的求和过程分解,并通过具体的例子来说明不同 `dim` 参数的效果。### 三维张量的结构假设我们有一个 3x2x2 的张量,如下所示:
import torch# 其中 [1, 2] 中的 1 和 2 是 x 方向
# 其中 [[1,2], [3,4]] 中的 [1, 2] 和 [3, 4] 是 y 方向
# 其中 [[[1,2][3,4]],[[5,6][7,8]],[[9,10][11,12]]] 中的 [[1,2][3,4]] 和 [[5,6][7,8]] 和 [[9,10][11,12]] 是 z 方向
tensor = torch.tensor([[[1, 2],[3, 4]],[[5, 6],[7, 8]],[[9, 10],[11, 12]]])print(tensor)这个张量可以看作是包含三个 2x2 矩阵的集合:
[[[ 1,  2],[ 3,  4]],[[ 5,  6],[ 7,  8]],[[ 9, 10],[11, 12]]
]### 沿指定维度求和的效果#### 不指定 `dim` 参数
默认情况下,`torch.sum` 会对所有元素求和:
total_sum = torch.sum(tensor)
print(total_sum)  # 输出: tensor(78)
解释:1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 = 78#### 指定 `dim=0`
`dim=0` 表示沿最外层维度求和,即对每个 2x2 矩阵的对应位置元素求和:
即制定dim=x, 表示沿着z方向求和(即消灭z方向)sum_dim0 = torch.sum(tensor, dim=0)
print(sum_dim0)
输出:
tensor([[15, 18],[21, 24]])
解释:
第一个位置:[1 + 5 + 9, 2 + 6 + 10] = [15, 18]
第二个位置:[3 + 7 + 11, 4 + 8 + 12] = [21, 24]#### 指定 `dim=1`
`dim=1` 表示沿每个 2x2 矩阵的行方向求和:
即制定dim=y, 表示沿着y方向求和(即消灭y方向)
sum_dim1 = torch.sum(tensor, dim=1)
print(sum_dim1)
输出:
tensor([[ 4,  6],[12, 14],[20, 22]])
解释:
对第一个二维矩阵:行和 [1 + 3, 2 + 4] = [4, 6]
对第二个二维矩阵:行和 [5 + 7, 6 + 8] = [12, 14]
对第三个二维矩阵:行和 [9 + 11, 10 + 12] = [20, 22]#### 指定 `dim=2`
`dim=2` 表示沿每个 2x2 矩阵的列方向求和:
即制定dim=z, 表示沿着x方向求和(即消灭x方向)sum_dim2 = torch.sum(tensor, dim=2)
print(sum_dim2)
输出:
tensor([[ 3,  7],[11, 15],[19, 23]])
解释:
对第一个二维矩阵:列和 [1 + 2, 3 + 4] = [3, 7]
对第二个二维矩阵:列和 [5 + 6, 7 + 8] = [11, 15]
对第三个二维矩阵:列和 [9 + 10, 11 + 12] = [19, 23]
### 总结
dim=0:沿最外层维度求和,结果是一个 2x2 矩阵,每个元素是对应位置上所有二维矩阵元素的和。
dim=1:沿每个二维矩阵的行方向求和,结果是一个 3x2 矩阵,每个元素是对应位置上行的和。
dim=2:沿每个二维矩阵的列方向求和,结果是一个 3x2 矩阵,每个元素是对应位置上列的和。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于DeepCFD模型和CNN/U-Net模型的流场预测
  • 一个简约的uniapp登录界面,基于uniapp+vue3+uview-plus
  • W25QXX系列Flash存储器模块驱动代码
  • 【读论文】End-to-end reproducible AI pipelines in radiology using the cloud
  • Android RecyclerView 缓存机制深度解析与面试题
  • 使用python操作数据库
  • mysql学习教程,从入门到精通,SQL 删除数据(DELETE 语句)(18)
  • PE-PINCodes 规则
  • Apache Spark — Repartition 与 Coalesce(调整数据集分区)
  • 直播标准权威发布,阿里云RTS获首批卓越级评估认证
  • 神经网络通俗理解学习笔记(1)
  • Redisson分布式锁分析,可重入、可续锁(看门狗)
  • Oracle中VARCHAR和VARCHAR2的区别
  • ModbusTCP/RTU转Ethernet/IP(CIP)-Modbus设备与罗克韦尔AB的PLC之间通讯
  • Spring框架基础知识
  • 【css3】浏览器内核及其兼容性
  • angular2开源库收集
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • es6
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript DOM 10 - 滚动
  • React中的“虫洞”——Context
  • spring + angular 实现导出excel
  • Wamp集成环境 添加PHP的新版本
  • yii2权限控制rbac之rule详细讲解
  • 浮现式设计
  • 后端_MYSQL
  • 力扣(LeetCode)21
  • 你不可错过的前端面试题(一)
  • 使用putty远程连接linux
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 小李飞刀:SQL题目刷起来!
  • ​力扣解法汇总946-验证栈序列
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #微信小程序:微信小程序常见的配置传值
  • $.ajax()方法详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (理论篇)httpmoudle和httphandler一览
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十一)手动添加用户和文件的特殊权限
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET C# 使用 iText 生成PDF
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .net反编译的九款神器
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @NestedConfigurationProperty 注解用法
  • @RequestMapping处理请求异常
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • []FET-430SIM508 研究日志 11.3.31
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——