You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多类语义分割:输出层激活函数如何选择?

多类语义分割Unet输出层激活函数选择指南

嘿,针对你用Keras搭建Unet做多类语义分割的场景,输出层的激活函数选择得结合你的任务类型来定,我给你拆解下最常用的两种方案:

1. 互斥多类分割(像素仅属于一个类别,类别数≥3)

这是语义分割里最常见的场景,比如场景分割里的“天空、道路、建筑”这类互斥类别,推荐用**softmax**作为激活函数:

  • 它会把输出的每个通道值归一化到0-1区间,且所有通道的数值之和为1,完美对应每个像素属于不同类别的概率分布。
  • 搭配的损失函数要注意标签格式:
    • 如果你的标签是one-hot编码形式(比如每个像素是长度为类别数的向量,只有对应类别为1,其余为0),用CategoricalCrossentropy;
    • 如果标签是整数索引形式(比如每个像素直接用0、1、2...代表不同类别,不用转one-hot,更节省内存),用SparseCategoricalCrossentropy。
  • 代码示例(假设你有5个目标类别):
    outputs = Conv2D(5, (1, 1), activation='softmax')(up_last_layer)
    

2. 多标签分割(像素可同时属于多个类别)

如果你的任务允许一个像素对应多个类别(比如医学影像里的“肿瘤+水肿”同时存在),那得用**sigmoid**激活函数:

  • 它会让每个输出通道独立输出0-1的数值,代表该像素属于对应类别的概率,各通道之间互不干扰。
  • 对应的损失函数用BinaryCrossentropy,因为每个类别都相当于一个独立的二分类任务。

额外提醒

不管选哪种激活函数,输出层的Conv2D滤镜数量都要和你的类别数(互斥多类)或标签数(多标签)保持一致哦~

内容的提问来源于stack exchange,提问作者Kay Raymond Oskal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:03:06