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

Calculate mean across one specific dimension of a 4D tensor in Pytorch

我有一个形状为 [66,7,7,1024] 的 PyTorch 视频特征张量,我需要将其转换为 [1024,66,7,7]。如何重新排列张量形状?另外,如何在 dimension=1 之间执行均值?即,在执行大小为 66 的维度的平均值之后,我需要张量为 [1024,1,7,7].

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

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

非常感谢。

第一部分问题已经在评论区回答了。所以我们可以使用 tensor.transpose([3,0,1,2]) 将张量转换为形状 [1024,66,7,7].

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

中解压缩

tensor = tensor.unsqueeze(1)