深度学习 axis的问题 shape = (axis=0, axis=1)

先记住一句话(万能口诀)

shape = (axis=0, axis=1)

  • axis=0 = 行方向 = 从上到下 = 上下压扁
  • axis=1 = 列方向 = 从左到右 = 左右压扁
  • 对哪个轴操作,就沿着这个轴 "压缩 / 合并",最后这个轴就消失了

一、二维矩阵(最常用):行 & 列

以你之前的矩阵 A(2行, 3列) 为例:

plaintext

复制代码
A = [
  [1, 2, 3],   # 第0行
  [4, 5, 6]    # 第1行
]
shape = (2, 3) → (axis0=2行, axis1=3列)

1. axis=0(上下压扁 → 按行求和)

  • 操作方向:从上往下,把多行压成 1 行
  • 动作:每一列的数字,上下相加
  • 结果:行消失,只剩列

plaintext

复制代码
sum(axis=0) = [1+4, 2+5, 3+6] = [5,7,9]
shape 从 (2,3) → (3)

✅ 你的理解完全对:axis=0 就是把 "行" 给抹去,上下压扁

2. axis=1(左右压扁 → 按列求和)

  • 操作方向:从左往右,把多列压成 1 列
  • 动作:每一行的数字,左右相加
  • 结果:列消失,只剩行

plaintext

复制代码
sum(axis=1) = [1+2+3, 4+5+6] = [6, 15]
shape 从 (2,3) → (2)

✅ 你的理解完全对:axis=1 就是把 "列" 给抹去,左右压扁


二、为什么 keepdims=True 很重要?(解决你之前的报错)

默认 sum 后,被压缩的轴会直接删掉

  • A.sum(axis=1) → shape (2,) (一维,没列了)
  • 没法和原矩阵 (2,3) 做除法 → 广播报错

keepdims=True

  • 压扁,但不删掉轴,保留一个维度占位
  • A.sum(axis=1, keepdims=True) → shape (2, 1)
  • 还是二维矩阵,就能和 (2,3) 正常广播计算

三、延伸到三维张量(你题目里的 (2,3,4))

三维 shape = **(axis0, axis1, axis2)**对应理解:

  • axis=0:前后 / 深度压扁(最外层维度)
  • axis=1:上下 / 行压扁
  • axis=2:左右 / 列压扁

求和后对应形状:

  • X(2,3,4).sum(axis=0) → (3,4)
  • X(2,3,4).sum(axis=1) → (2,4)
  • X(2,3,4).sum(axis=2) → (2,3)

逻辑和二维完全一样:对哪个轴操作,就沿着它合并,这个轴消失


四、终极极简总结

  1. axis=0 方向:从上到下效果:上下压扁,行消失

  2. axis=1 方向:从左到右效果:左右压扁,列消失

  3. 通用规则对哪个 axis 操作,就沿着这个轴 "捏扁",最后这个轴就没了

这个理解方式在深度学习里100% 通用:softmax、归一化、求和、均值、拼接全是这个逻辑。

相关推荐
CCC:CarCrazeCurator33 分钟前
A100作为深度学习基础计算节点的原因
人工智能·深度学习
hhzz1 小时前
Barbershop:基于GAN和分割Mask的图像合成技术——从理论到实战全解析
图像处理·人工智能·python·深度学习·计算机视觉
数智工坊7 小时前
RealNet:用于异常检测的特征选择网络,具备真实的合成异常样本
人工智能·深度学习
阳明山水7 小时前
TimesFM与Moirai MoE零样本预测解析
人工智能·深度学习·算法·机器学习·架构
m0_626535207 小时前
GAE generalized advantage estimation 广义优势估计
深度学习
卡梅德生物科技小能手8 小时前
卡美德生物科普NGF(神经生长因子):神经系统发育与修复的关键调节因子
经验分享·深度学习·生活
大鱼>8 小时前
宠物异常行为预警系统:边缘计算与实时检测
人工智能·深度学习·算法·iot·宠物
我没胡说八道8 小时前
论文排版避坑指南|按问题选工具,不踩坑,选好工具
人工智能·深度学习·考研·计算机视觉·自然语言处理·论文
拥抱太阳06168 小时前
HarmonyOS 应用开发《掌上英语》第6篇-资源管理最佳实践多模块资源复用
pytorch·深度学习·harmonyos
会飞锦鲤8 小时前
基于YOLOv10的瓜果成熟度智能检测系统
人工智能·python·深度学习·yolo·flask