我有 2 个张.size
量torch.Size([2272, 161])
。我想得到它们之间的均方误差。但是,我希望它沿着 161 个通道中的每一个通道,以便我的误差张量.size
具有torch.Size([161])
. 我怎样才能做到这一点?
似乎这torch.nn.MSELoss
不允许我指定维度。
我有 2 个张.size
量torch.Size([2272, 161])
。我想得到它们之间的均方误差。但是,我希望它沿着 161 个通道中的每一个通道,以便我的误差张量.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)
我认为没有直接的方法可以在初始化损失时指定将平均值/总和应用于哪个维度。希望有帮助!