如何获得特定维度上张量的 MSE?

Sha*_*oon 5 python mean-square-error pytorch tensor

我有2张量与.sizetorch.Size([2272, 161])。我想得到它们之间的均方误差。不过,我想它沿着每个161个通道,使我的错误张量有一个.sizetorch.Size([161])。我怎样才能做到这一点?

似乎torch.nn.MSELoss不允许我指定维度。

小智 8

对于nn.MSELoss您可以指定选项reduction='none'。然后,这将为您返回两个张量的每个条目位置的平方误差。然后你可以应用torch.sum/torch.mean。

a = torch.randn(2272,161)
b = torch.randn(2272,161)
loss = nn.MSELoss(reduction='none')
loss_result = torch.sum(loss(a,b),dim=0) 
Run Code Online (Sandbox Code Playgroud)

我认为没有一种直接的方法可以在损失的初始化时指定应用均值/总和的维度。希望有帮助!