我正在尝试在cityscapes数据集上训练一个 UNET 模型,该模型具有20个“有用”的语义类和一堆可以忽略的背景类(例如,天空,自我车辆,山脉,路灯)。为了训练模型以忽略这些背景像素,我在互联网上使用以下流行的解决方案:
- 我为所有对象分配了一个公用
ignore_label
(例如:ignore_label=255
) 属于忽略类的像素 - 针对每个像素预测使用
cross_entropy
损失训练模型 - 在
ignore_label
损失中提供cross_entropy
参数,因此 计算得出的损耗会忽略具有不必要类的像素。
但是这种方法有问题。经过训练后,该模型最终将这些背景像素归为20类之一。这是可以预期的,因为在损耗方面,我们不会为模型对背景像素进行任何分类而对模型进行惩罚。
因此,第二种明显的解决方案是对所有背景像素使用额外的类。因此,它是城市景观中的21类。但是,在这里,我担心通过教它对这个额外的不必要的类进行分类,我将“浪费”我的模型的能力。
处理背景像素类的最准确方法是什么?