计算机系统应用教程网站

网站首页 > 技术文章 正文

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

btikc 2024-12-18 12:24:12 技术文章 18 ℃ 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()

nn.NLLLoss()实现举例


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

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

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

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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表