我有 2 个张量 .size
的 torch.Size([2272, 161])
.我想得到它们之间的均方误差。但是,我希望它沿着 161 个 channel 中的每一个,以便我的误差张量具有 .size
的 torch.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)
我认为没有一种直接的方法可以在损失的初始化时指定应用均值/总和的维度。希望有帮助!
关于python - 如何获得特定维度上张量的 MSE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60976758/