1.首先给出函数的参数:
nn.L1Loss(size_average=True, reduce=False)
2.然后举个简单的例子,帮助理解
1》设置网络的输出与真实的输出:
# 其中output为网络的输出
# target为目标输出即对应输入真实的标签
output = torch.ones(2, 3, requires_grad=True)*2.5
target = torch.ones(1, 3)
2》设置损失函数的参数/实例化:
损失函数nn.L1Loss() 作用其实就是计算网络输出与标签之差的绝对值,返回的数据类型可以是张量,也可以是标量。
LOSSresult = nn.L1Loss(size_average=True, reduce=True) #设置损失函数的参数/实例化
3》将上述的网络输出与指示灯的输出(标签)带入,的到输出结果:
result = LOSSresult(output, target)
print('求平均:{}'.format(result))
4》手写计算结果验证:
output= [[1 1 1] [[2.5 5.5 2.5]
[1 1 1]] *2.5 = [2.5 2.5 2.5]]
target=[1 1 1]
然后计算 loss:
result=[[1.5 1.5 1.5]
[1.5 1.5 1.5]]
所以计算的平均值为1.5,和为1.5*6=9
5》结束运算。
欢迎小伙伴们一起沟通探讨。