You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Numpy是否存在反向广播?能否用单函数实现对应降维求和?

用Numpy的sum函数一步完成反向求和操作

你可以直接用np.sum()函数,一次性指定所有需要求和的轴,并通过keepdims=True保留单维度,就能一步得到和x1形状一致的结果。

具体代码如下:

import numpy as np
x0 = np.random.randn(7, 8, 9, 10, 11)
x1 = np.random.randn(9, 1, 11)
y = x0 + x1

# 一步完成求和
result = np.sum(y, axis=(0, 1, 3), keepdims=True)
print(result.shape == x1.shape)
# True

原理说明

  • 广播时x1被扩展到y的形状,新增的维度是轴0(7)、轴1(8)、轴3(10),对这三个轴求和就能还原到x1的维度。
  • axis=(0,1,3)一次性指定所有需要求和的轴,keepdims=True会保留求和后原本的单维度(比如轴3求和后保持为1,而非被挤压掉),最终形状就和x1完全一致。

内容的提问来源于stack exchange,提问作者Sam-gege

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:22:35