nn.L1Loss
nn.L1Loss(#计算inputs与target之差的绝对值
size_average=None,
reduce=None,
reduction='mean’
)
nn.MSELoss
nn.MSELoss(#计算inputs与target之差的平方
size_average=None,
reduce=None,
reduction='mean’
#计算模式,可为none/sum/mean
#none- 逐个元素计算
#sum- 所有元素求和,返回标量
#mean- 加权平均,返回标量
)
SmoothL1Loss
nn.SmoothL1Loss(
size_average=None,
reduce=None,
reduction='mean’
)
PoissonNLLLoss
nn.PoissonNLLLoss(#泊松分布的负对数似然损失函数
log_input=True, #输入是否为对数形式,决定计算公式
full=False,#输入是否为对数形式,决定计算公式
size_average=None,
eps=1e-08, #修正项,避免log(input)为nan
reduce=None,
reduction='mean'
)
nn.KLDivLoss
nn.KLDivLoss(#计算KLD(divergence),KL散度,相对熵
#注意事项:需提前将输入计算 log-probabilities,如通过nn.logsoftmax()
size_average=None,
reduce=None, #none/sum/mean/batchmean
reduction='mean'
)
nn.MarginRankingLoss
y = 1时, 希望x1比x2大,当x1>x2时,不产生loss
y = -1时,希望x2比x1大,当x2>x1时,不产生loss
nn.MarginRankingLoss(#计算两个向量之间的相似度,用于排序任务
#该方法计算两组数据之间的差异,返回一个n*n的loss矩阵
margin=0.0, #边界值,x1与x2之间的差异值
size_average=None,
reduce=None,
reduction='mean'#计算模式,可为none/sum/mean
)
nn.MultiLabelMarginLoss
nn.MultiLabelMarginLoss(#多标签边界损失函数
#举例:四分类任务,样本x属于0类和3类,
#标签:[0, 3, -1, -1] , 不是[1, 0, 0, 1]
size_average=None,
reduce=None,
reduction='mean'#计算模式,可为none/sum/mean
)
nn.SoftMarginLoss
nn.SoftMarginLoss(#计算二分类的logistic损失
size_average=None,
reduce=None,
reduction='mean'#计算模式,可为none/sum/mean
)
nn.MultiLabelSoftMarginLoss
nn.MultiLabelSoftMarginLoss(#SoftMarginLoss多标签版本
weight=None, #各类别的loss设置权值
size_average=None,
reduce=None,
reduction='mean'#计算模式,可为none/sum/mean
)
nn.MultiMarginLoss
nn.MultiMarginLoss(#计算多分类的折页损失
p=1, #可选1或2
margin=1.0, #边界值
weight=None, #各类别的loss设置权值
size_average=None,
reduce=None,
reduction='mean'#计算模式,可为none/sum/mean
)
nn.TripletMarginLoss
nn.TripletMarginLoss(#计算三元组损失,人脸验证中常用
margin=1.0, #边界值
p=2.0, #范数的阶,默认为2
eps=1e-06,
swap=False,
size_average=None,
reduce=None,
reduction='mean'#计算模式,可为none/sum/mean
)
nn.HingeEmbeddingLoss
nn.HingeEmbeddingLoss(#计算两个输入的相似性,常用于非线性embedding和半监督学习
#特别注意:输入x应为两个输入之差的绝对值
margin=1.0, #边界值
size_average=None,
reduce=None,
reduction='mean'#计算模式,可为none/sum/mean
)
nn.CosineEmbeddingLoss
nn.CosineEmbeddingLoss(#采用余弦相似度计算两个输入的相似性
margin=0.0, #可取值[-1, 1] , 推荐为[0, 0.5]
size_average=None,
reduce=None,
reduction='mean'#计算模式,可为none/sum/mean
)
nn.CTCLoss
torch.nn.CTCLoss(#计算CTC损失,解决时序类数据的分类Connectionist Temporal Classification
blank=0, #blank label
reduction='mean', #计算模式,可为none/sum/mean
zero_infinity=False#无穷大的值或梯度置0
)