在Pytorch中计算4D张量的一个特定维度的平均值

时间:2019-12-21 11:10:31

标签: python numpy computer-vision pytorch tensor

我有一个形状为[66,7,7,1024]的PyTorch视频特征张量,我需要将其转换为[1024,66,7,7]。如何重新排列张量形状?另外,如何在dimension=1上执行均值?也就是说,在执行尺寸为66的尺寸的均值后,我需要张量为[1024,1,7,7]

我试图计算维数= 1的平均值,但未能将其替换为平均值。而且我无法想象一个4D张量,其中一维被其均值取代。

编辑:  我尝试了torch.mean(my_tensor,dim = 1)。但是,这给了我一个形状为[1024,7,7]的张量。 4D张量将转换为3D。但我希望它保持4D形状[1024,1,7,7]。

非常感谢。

1 个答案:

答案 0 :(得分:0)

问题的第一部分已在评论部分得到解答。因此,我们可以使用tensor.transpose([3,0,1,2])将张量转换为形状[1024,66,7,7]

现在在时间维度上的均值可以通过 torch.mean(my_tensor, dim=1) 这将给出形状为[1024,7,7]的3D张量。 要获得形状为[1024,1,7,7]的张量,我必须在尺寸= 1时解压缩:

tensor = tensor.unsqueeze(1)