损失函数介绍

1、nn.L1Loss

功能:计算inputs与target之间的绝对值

2、nn.MSELoss

功能:计算inputs与target之差的平方
主要参数:
reduction:计算模式,可为none/sum/mean(none:逐个元素进行计算,sum:所有元素求和,返回标量,mean:加权平均,返回标量)

3、nn.SmoothL1Loss

功能:平滑的L1Loss
主要参数:
reduction:计算模式,可为none/sum/mean(none:逐个元素进行计算,sum:所有元素求和,返回标量,mean:加权平均,返回标量)
好处:通过平滑可以减轻离群点带来的影响

4、nn.PossionNLLLoss

功能:泊松分布的负对数似然损失函数
主要参数:
log_input:输入是否为对数形式,决定计算公式
full:计算所有loss。默认为false
eps:修正项,避免input为nan(是一个非常小的数)

5、nn.KLDivLoss

功能:计算KLD,KL散度,相对熵
注意事项:需提前将输入计算的log-probabilities通过nn.logsoftmax()
主要参数:
reduction:计算模式,可为none/sum/mean/batchmean(none:逐个元素进行计算,sum:所有元素求和,返回标量,mean:加权平均,返回标量,batchmean:维度平均值)

6、nn.MarginRankingLoss

功能:计算两个向量之间的相似度,用于排序任务
特别说明:该方法计算两组数据之间的差异,返回一个n*n的loss矩阵
主要参数:
margin:边界值,x1与x2之间的差异
reduction:计算模式,可为none/sum/mean

7、nn.MultiLabelMarginLoss

功能:多标签边界损失函数,适用于一张图片属于多个类别的分类任务
主要参数:
reduction:计算模式,可为none/sum/mean

8、nn.SoftMarginLoss

功能:计算二分类的logistic损失
主要参数:
reduction:计算模式,可为none/sum/mean

9、nn.MultiLabelSoftMarginLoss

功能:SoftMarginLoss多标签版本
主要参数:
weight:各类别的loss设置权值
reduction:计算模式,可为none/sum/mean

10、nn.MultiMarginLoss

功能:计算多分类折页损失
主要参数:
reduction:计算模式,可为none/sum/mean
p:可选1或2
weight:各类别的loss设置权值
margin:边界值

11、nn.TripletMarginLoss

功能:计算三元组损失,人脸验证中经常使用
主要参数:
reduction:计算模式,可为none/sum/mean
p:可选1或2
margin:边界值

12、nn.HingeEmbeddingLoss

功能:计算两个输入的相似性,常用于非线性embedding(嵌入学习)和半监督学习
特别注意:输入x应为两个输入之差的绝对值
主要参数:
reduction:计算模式,可为none/sum/mean
margin:边界值

13、nn.CosineEmbeddingLoss

功能:采用余弦相似度计算两个输入的相似性
主要参数:
reduction:计算模式,可为none/sum/mean
margin:边界值,可取【-1,1】,推荐为【0,0.5】

14、nn.CTCLoss

功能:计算CTC损失,解决时序类数据的分类
主要参数:
blank:blank label
zero_infinity:无穷大的值或梯度置0
reduction:计算模式,可为none/sum/mean