Pytorch中的损失函数
损失函数的作用:衡量模型模型预测的好坏。再简单一点说就是:损失函数就是用来表现预测与实际数据的差距程度。
BCELoss
中文名为二分类交叉熵损失。在二分类中,label是{0,1}。对于进入交叉熵函数的input为概率分布的形式。一般来说,input为sigmoid激活层的输出,或者softmax的输出。
对于包含N个样本的batch数据 D(x, y),loss计算如下:
torch.nn.BCELoss(weight=None, size_average=None, reduce=None, reduction='mean')
weight:每个类别的loss设置权值
size_average:数据为bool,为True时,返回的loss为平均值;为False时,返回的各样本的loss之和。
reduce:数据类型为bool,为True时,loss的返回是标量。
CrossEntropyLoss
中文名为交叉熵损失函数
torch.nn.CrossEntropyLoss(weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean')
weight:每个类别的loss设置权值。
size_average:数据为bool,为True时,返回的loss为平均值;为False时,返回的各样本的loss之和。
ignore_index:忽略某个类的损失函数。
reduce:数据类型为bool,为True时,loss的返回是标量。
L1Loss
中文名为均绝对误差(L1 Loss)
均绝对误差(Mean Absolute Error,MAE) 是指模型预测值f(x)和真实值y之间距离的“均值”
torch.nn.L1Loss(size_average=None, reduce=None, reduction='mean')
reduction参数决定了计算模式。有三种计算模式可选:none:逐个元素计算。 sum:所有元素求和,返回标量。 mean:加权平均,返回标量。 如果选择none,那么返回的结果是和输入元素相同尺寸的。默认计算方式是求平均。
MSE
中文名为均方误差(Mean Square Error,MSE)是模型预测值f(x) 与真实样本值y 之间差值平方的均值
torch.nn.MSELoss(size_average=None, reduce=None, reduction='mean')
reduction参数决定了计算模式。有三种计算模式可选:none:逐个元素计算。 sum:所有元素求和,返回标量。默认计算方式是求平均。