Loss functions
定义:
N:batch_size,用于训练的批次的样本数量
C:模型的输出节点个数
1. 回归任务
1.1 绝对值损失 L1 Loss
计算输入 x 和 y之间差的绝对值平均值。
loss(x,y)=1N∗C∑n=1N∑c=1C∣xnc−ync∣loss(x, y) = \frac{1}{N*C} \sum_{n=1}^{N}\sum_{c=1}^C{|x_{nc}-y_{nc}|}loss(x,y)=N∗C1n=1∑Nc=1∑C∣xnc−ync∣
class torch.nn.L1Loss(_Loss):
def __init__(self, size_average=True):
r"""
parameters:
size_average: bool, 如果size_average的值为 False,则不会有1/(N*C)
"""
... ...
def __call__(self, x, y):
r"""
parameters:
x: size(N, C), 模型预测输出,可以是任意形状
y: size(N, C), 目标值,形状和x相同
"""
1.2 均方误差损失 MSELoss
计算输入 x 和 y之间差的均方误差。
loss(x,y)=1N∗C∑n=1N∑c=1C(xnc−ync)2loss(x, y) = \frac{1}{N*C} \sum_{n=1}^{N}\sum_{c=1}^C{(x_{nc}-y_{nc})^2}loss(x,y)=N∗C1n=1∑N