PyTorch中各种求和运算

首先定义张量A

python 复制代码
A = torch.arange(20, dtype=torch.float32).reshape(5, 4)
tensor([[ 0.,  1.,  2.,  3.],
        [ 4.,  5.,  6.,  7.],
        [ 8.,  9., 10., 11.],
        [12., 13., 14., 15.],
        [16., 17., 18., 19.]])

1. 降维求和

降维求和会沿指定轴降低张量的维度,使它变为一个标量。

python 复制代码
A_sum_axis0 = A.sum(axis=0)  # 压缩为一行
tensor([40., 45., 50., 55.]

A_sum_axis1 = A.sum(axis=1)  # 压缩为一列
tensor([ 6., 22., 38., 54., 70.]

A_sum = A.sum(axis=[0, 1])  # 结果与 A.sum() 相同
tensor(190.)

2. 非降维求和

保持轴数不变

python 复制代码
A_sum_axis0 = A.sum(axis=0, keepdims=True)
tensor([[40., 45., 50., 55.]])

A_sum_axis1 = A.sum(axis=1, keepdims=True)
tensor([[ 6.],
        [22.],
        [38.],
        [54.],
        [70.]])

A_sum = A.sum(axis=[0, 1], keepdims=True)
tensor([[190.]])

3. 累积求和

沿某个轴计算A元素的累积总和,此函数不会沿任何轴降低输入张量的维度。

python 复制代码
A_sum_axis0 = 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.]])

A_sum_axis1 = A.cumsum(axis=1)
tensor([[ 0.,  1.,  3.,  6.],
        [ 4.,  9., 15., 22.],
        [ 8., 17., 27., 38.],
        [12., 25., 39., 54.],
        [16., 33., 51., 70.]])
相关推荐
秦先生在广东3 分钟前
去中心化与全能化:深入剖析 Open WebUI 的自托管架构与工程实践
人工智能
IvorySQL3 分钟前
PostgreSQL 日报|堆表选择性索引更新(10 月 13 日)
数据库·人工智能·postgresql·开源·区块链
蜗牛互联网7 分钟前
Java 17 调用视觉 Responses API:JSON 约束与人工复核路由
java·人工智能·后端
秦先生在广东7 分钟前
Agent 驱动的逆向工程工作流:REA 全栈二进制与多格式分析工具深度解析
人工智能
2603_9688173411 分钟前
AI视频怎么超清增强
人工智能
frankzch16 分钟前
微软 137B 编码模型搬到 PC:端侧推理与 Agent 权限防线
人工智能·深度学习·microsoft·机器学习·语言模型
外收内放21 分钟前
Python基础语法练习题(69)
开发语言·python
TomEval25 分钟前
【测AI】第11篇:深度学习基础 —— 神经网络是怎么工作的
人工智能·python·深度学习·神经网络·机器学习·aigc
zhang-ge28 分钟前
python包和项目管理器uv在ubuntu下的安装与使用
开发语言·python·uv
老金带你玩AI32 分钟前
Gemini 4上线!又回到御三家了?
人工智能