import numpy as np
import torch
import torch.nn.functional as F
a=torch.Tensor([1,5,3,0.5,0.9])
b=torch.Tensor([4,1,0,0.4,0.2])
loss1=F.smooth_l1_loss(a,b)
loss_part1=torch.abs(a-b)
loss_part2=loss_part1**2
loss_part2=loss_part2*0.50
print()
loss2=torch.where(loss_part1>=1,loss_part1-0.5,loss_part2)
loss2=torch.mean(loss2)
print(loss1)
print(loss2)
本文通过具体代码实例,详细解析了PyTorch中平滑L1损失函数(Smooth L1 Loss)的工作原理及其实现过程。对比了传统L1损失和平方损失在不同误差区间的表现,展示了平滑L1损失如何在小误差时采用平方损失形式,而在大误差时切换到L1损失形式,从而达到更优的训练效果。
5450

被折叠的 条评论
为什么被折叠?



