×

图像语义分割实践(四)损失函数与实现

hqy hqy 发表于2025-04-14 05:23:24 浏览4 评论0百度已收录

抢沙发发表评论

在确定检测任务和模型构建完成后,随之需要对训练的准则Criterion进行实现,可称之为损失函数或代价函数,简明而言,训练过程中真实值和计算值的误差。

分割常见的损失函数如下

cross entropy loss:交叉熵,通用于不同类样本量在一个量级的任务;focal loss:交叉熵的改进版本,增加两个权重,聚焦不平衡样本任务;dice loss:样本极不平衡可用,反向梯度值太大,训练不稳定;iou loss:较多见于目标检测任务的回归任务;

cross entropy loss

小拓展: md写公式需要单元:

方法一,直接调用函数

seg_loss = torch.nn.CrossEntropyLoss()

方法二,根据公式实现

class SimpleCrossEntropyLoss(nn.Module): # H(p,p)=p*log(q) def __init__(self): super().__init__() self.logsoftmax_func = nn.LogSoftmax(dim=1) # torch.log(torch.nn.Softmax(dims=1)(inputs)) self.nllloss_func = nn.NLLLoss() pass def forward(self, inputs, target): x = self.logsoftmax_func(inputs) loss = self.nllloss_func(x, target) return loss pass seg_loss = SimpleCrossEntropyLoss()

pytorch实现流程

nn.NLLLoss()实现举例

,一维二维计算示例如下。

一维nllloss计算过程

二维nllloss计算过程

图像语义分割实践(四)损失函数与实现_智能之心的博客-CSDN博客

图像语义分割实践(四)损失函数与实现 - 知乎

图像语义分割实践(四)损失函数与实现 - 简书