首页 > 解决方案 > 使用 Keras 中的稀疏分类交叉熵进行多类分类的输出格式

问题描述

我已经使用 Keras 功能 API 构建了一个 u-net 架构,但是我在使用稀疏分类交叉熵损失函数时遇到了问题。我的学习任务是对许多 256x256 图像进行多类、逐像素分类。预期的输出是一个 256x256 的掩码图像,其整数值介于 0-31 之间(并非每个掩码都包含每个类)。我有 32 个类,所以单热编码给了我一个 OOM 错误,这就是我不使用分类交叉熵的原因。大多数掩码像素为 0(这可能是问题的一部分)。

我一直在损失= nan。我已将输入数据标准化为均值 = 0,标准值 = 1。如果我保留掩码原样,我会得到大约 0.97 的准确度,并且输出掩码都是 1(这显然是不正确的)。如果我在执行训练之前将 1 添加到所有掩码中,则准确度为 0。我在最后一个卷积层中使用带有 SoftMax 的 relu 激活。

似乎问题可能与我的输出数据的格式有关,所以我的主要问题是,稀疏分类交叉熵应该采用什么格式?我应该将掩码值标准化为 0-1 吗?或者,是否有任何其他损失函数或准确性指标可以用于训练?就多类分类而言,我所知道的唯一功能是分类交叉熵。如果需要,我可以提供有关我的数据、网络等的其他信息。

标签: tensorflowmachine-learningkerasloss-functioncross-entropy

解决方案


推荐阅读