在0-1直接,mseloss的平方是smooth_l1_loss,smooth_l1_loss更小
import torch
import torch.nn.functional as F
conf_mask = torch.FloatTensor([3])
conf_data = torch.FloatTensor([1])
loss_fn = torch.nn.MSELoss( reduce=False, size_average=False)
x= loss_fn(conf_mask, conf_data).item()
print('-----',x)
loc_loss = F.smooth_l1_loss(conf_mask, conf_data)
print(loc_loss)
结果:
----- 4.0
tensor(1.5000)
测试代码:
import torch
import torch.nn.functional as F
conf_mask = torch.FloatTensor([0.0, 10.0, 0.0, 1.0, 1.0])
conf_data = torch.FloatTensor([10.1, 0.9, 0.0, 10.2, 10.2])
loss_fn = torch.nn.MSELoss()# reduce=False, size_average=False)
x= loss_fn(conf_mask, conf_data).item()
print('-----0&1',x)
loc_loss = F.smooth_l1_loss(conf_mask, conf_data)
print(loc_los