浅谈矩阵操作中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张量.
个人见解.

浙公网安备 33010602011771号