损失函数介绍
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









