动手学深度学习——线性代数按特定轴求和

按特定轴求和原理

举例说明: 2x4x5的张量:  ,如果按照  来进行求和的话,就相当于消去了这个维度,  ,从而会得到一个  的矩阵,同理,如果按照  来进行求和的话,那就消去了这个维度,  ,从而会得到一个  个元素的矩阵。

那假如按照多个维度来进行求和呢,2x4x5 的张量,如果按照  来进行求和,那就相当于消去了这两个维度,  ,那就会得到一个只有  个元素的向量。

特别注意的是,在计算维度求和的时候,有一个参数keepdims=TRUE,他的作用是保持矩阵或张量维度的个数不变。上面说的剩下只有 4 个元素的向量,如果是矩阵剩下的,那么维度应该是  的,张量的话,可以是  等等。keepdims=TRUE就是为了将这个  保留的。

代码实现

import torch
a=torch.ones((2,5,4))
print(a.shape)

print(a.sum().shape)
print(a.sum(axis=1).shape)#纬度为1求和 ,中间的元素5会被去掉
print(a.sum(axis=1))

print(a.sum(axis=0).shape)#纬度为0求和 ,第一个的元素2会被去掉

print(a.sum(axis=[0,2]).shape)#第一个的元素2和第三个的元素4会被去掉

print(a.sum(axis=1,keepdims=True).shape) #把中间的元素5变成1

print(a.sum(axis=[0,2],keepdims=True).shape) #第一个的元素2和第三个的元素4变成1

输出结果

动手学深度学习——线性代数按特定轴求和_第1张图片

 

你可能感兴趣的:(动手学深度学习,深度学习,算法,人工智能,线性代数,pytorch)