我有一个形状为[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]。
非常感谢。
答案 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)