可以通过调用 mean
函数并指示其在哪些轴上进行平均计算,并且在计算过程中保持维度不变来完成这一操作。在 PyTorch 中实现这一功能的代码与在 NumPy 中非常相似,只不过将 axis
替换为 dim
,并将 keepdims
替换为 keepdim
。
以下是 PyTorch 中的例子:
import torch
# 创建一个五维张量
a = torch.rand(7, 12, 12, 197, 197)
print(a.shape) # 输出:torch.Size([7, 12, 12, 197, 197])
# 指定轴并在保持维度的情况下计算平均值
b = torch.mean(a, dim=(1, 2, 4), keepdim=True)
print(b.shape) # 输出:torch.Size([7, 1, 1, 197, 1])
而在 NumPy 中的相应实现如下:
import numpy as np
# 创建一个默认随机数生成器并生成五维数组
rng = np.random.default_rng(42)
a = rng.random((7, 12, 12, 197, 197))
print(a.shape) # 输出:(7, 12, 12, 197, 197)
# 按指定轴计算平均值并在保持维度的前提下返回结果
b = np.mean(a, axis=(1, 2, 4), keepdims=True)
print(b.shape) # 输出:(7, 1, 1, 197, 1)