我有一个形状为 [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]。
非常感谢。
最佳答案
问题的第一部分已在评论部分得到解答。因此我们可以使用 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.unsqueeze(1)
关于python - 在 Pytorch 中计算 4D 张量的一个特定维度的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59435653/