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

How can I get the MSE of a tensor across a specific dimension?

我有 2 个张量 .size of torch.Size([2272, 161])。我想得到它们之间的均方误差。但是,我希望沿着 161 个通道中的每一个通道使用它,以便我的误差张量的 .sizetorch.Size([161])。我怎样才能做到这一点?

好像torch.nn.MSELoss不让我指定维度

对于 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) 

我认为没有直接的方法可以在损失初始化时指定应用哪个维度mean/sum。希望对您有所帮助!