PyTorch笔记16--损失函数(二)

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
)

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值