import numpy as np
x=np.arange(48).reshape(6,8)
x.sum(axis=1)
x.sum(axis=0)
通常遇到的都是二维矩阵在一个维度上进行求和
看下面这个例子:
x=np.arange(48).reshape(2,2,3,4)
x.sum(axis=(0,2,3))
在三个维度上面求和,得到的结果应该是什么?
前言:
四维矩阵各位置代表的含义:
(批量大小,通道,高,宽),批量大小可以理解为样本的多少
x的形状应该是这个样子的:
使用图形表示可以更好的理解:
回归正题:
x=np.arange(48).reshape(2,2,3,4)
x.sum(axis=(0,2,3))
我们可以这样理解:
①先看2和3,把它理解为二维矩阵的0和1,每一个3×4矩阵分别按行和列求和
先按行:
再按列:
②0相当于在批量大小维度进行相加,即把(1)(2)进行相加(横向)
最后得到的结果是
思考:
如果x.sum(axis=(1,2,3))得到的结果应该是什么?
①还是把2和3理解为二维矩阵的0和1,这一步没有变化
②1也就是在通道维度进行相加,即①②方向
结果为:
由此我们也可以得出一个结论:
axis=(),这里面缺少哪个数字最后得到的结果就是几维向量
例如x.sum(axis=(0,1,2)),缺少3,那么最后得到的结果就是一个3维向量