分类与分割的区别

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

图像分类与语义分割主要区别在于,分类通过像素的整体特征获得一个类别的概率值,而分割则是根据图像的之间像素之间的关系获取单个像素的类别概率值。
因此在分类时需要再进行分类前将数据采用flatten进行整合在采用线性层将数据压缩为响应的类别数目得到概率值进行损失函数计算。
而分割网络则采用圈卷积或对网络斤进行上采样,将数据恢复到原始图像尺度得到相应的概率值并计算损失函数。


提示:以下是本篇文章正文内容,下面案例可供参考

一、图像分类操作

示例:图像输入net,先根据处理获取feature,再将feature进行展开/打平;在采用线性层对数据进行压缩得到概率值;(最后一步可以直接采用输出通道为classnumber的输入特征大小卷积核进行压缩处理)

二、使用步骤

1.引入库

代码如下(示例):

        self.features = nn.Sequential(*features)

        # building classifier
        self.avgpool = nn.AdaptiveAvgPool2d((1, 1))
        self.classifier = nn.Sequential(
            nn.Dropout(0.2),
            nn.Linear(last_channel, num_classes)
        )
    def forward(self, x):
        x = self.features(x)
        x = self.avgpool(x)
        x = torch.flatten(x, 1)
        x = self.classifier(x)
        return x

2.语义分割

语义分割在这里可以简单地理解为将最后的线性层替换为卷积层(卷积核大小应远小于输入特征大小,不要与上文的压缩特征混淆)

self.features = nn.Sequential(*features)

        # building classifier
        self.avgpool = nn.AdaptiveAvgPool2d((1, 1))
        self.classifier = nn.Sequential(
            nn.Dropout(0.2),
            nn.Con2D(last_channel, num_classes)
        )
    def forward(self, x):
        x = self.features(x)
        x = self.avgpool(x)
        x = self.classifier(x)
        #如果特征与标签尺寸不一致,寻要对特征进行上采样处理
        return x

总结

`

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云朵不吃雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值