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

标签 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]。

非常感谢。

最佳答案

问题的第一部分已在评论部分得到解答。因此我们可以使用 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/

相关文章:

machine-learning - 数据集中所有图像中特定对象的存在是否会影响 CNN 的性能

python - 从keras中的扩展张量制作输入特征图

python - Pandas 中的整数切片对于行和列不同?

python - Matplotlib yaxis范围显示使用绝对值而不是偏移值?

python - 使用 Python 网页抓取下载 PDF 不起作用

python - 将 PIL 黑白图像转换为 Numpy 数组时出错

python - 比较矩阵中相邻单元格的更好方法

c++ - OpenCV:使用函数 cvGoodFeaturesToTrack 时出错

python - matplotlib 绘图速度非常慢

python - 根据另一个数据框中的值计算数据框中的值