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