浅谈矩阵操作中axis=i的理解

不妨设一个矩阵(Matrix) A ,

那么对A进行axis=i,即将张量A的第i个维度拍扁后得到的张量

如:

A = torch.tensor([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]])
A.sum(axis = 0)

 得到结果:

tensor([6, 6, 6, 6])

 即把第0个维度(在当前张量A中为行)拍扁求和.

 

又如:在三维张量A=[[[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]],[[4, 4, 4, 4], [5, 5, 5, 5], [6, 6, 6, 6]]]中,

A = torch.tensor([[[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]],[[4, 4, 4, 4], [5, 5, 5, 5], [6, 6, 6, 6]]])
A.sum(axis = 0), A.sum(axis = 1), A.sum(axis = 2)

  得到输出:

(tensor([[5, 5, 5, 5],
         [7, 7, 7, 7],
         [9, 9, 9, 9]]),
 tensor([[ 6,  6,  6,  6],
         [15, 15, 15, 15]]),
 tensor([[ 4,  8, 12],
         [16, 20, 24]]))

  即三个操作可依次理解为:

1.在当前三维张量A中,axis = 0,把两个3*4张量拍扁成一个求和.

2.在当前三维张量A中,axis = 1,把两个3*4张量的行拍扁,得到两个1*4的求和张量,组合为了2*4张量.

3.在当前三维张量A中,axis= 2,把两个3*4张量的列拍扁,得到两个3*1的求和张量,组合为了2*3张量.

 

个人见解.

 

posted @ 2022-04-27 21:10  Krasitz  阅读(195)  评论(0)    收藏  举报