tensorflow - 使用 Keras 中的稀疏分类交叉熵进行多类分类的输出格式
问题描述
我已经使用 Keras 功能 API 构建了一个 u-net 架构,但是我在使用稀疏分类交叉熵损失函数时遇到了问题。我的学习任务是对许多 256x256 图像进行多类、逐像素分类。预期的输出是一个 256x256 的掩码图像,其整数值介于 0-31 之间(并非每个掩码都包含每个类)。我有 32 个类,所以单热编码给了我一个 OOM 错误,这就是我不使用分类交叉熵的原因。大多数掩码像素为 0(这可能是问题的一部分)。
我一直在损失= nan。我已将输入数据标准化为均值 = 0,标准值 = 1。如果我保留掩码原样,我会得到大约 0.97 的准确度,并且输出掩码都是 1(这显然是不正确的)。如果我在执行训练之前将 1 添加到所有掩码中,则准确度为 0。我在最后一个卷积层中使用带有 SoftMax 的 relu 激活。
似乎问题可能与我的输出数据的格式有关,所以我的主要问题是,稀疏分类交叉熵应该采用什么格式?我应该将掩码值标准化为 0-1 吗?或者,是否有任何其他损失函数或准确性指标可以用于训练?就多类分类而言,我所知道的唯一功能是分类交叉熵。如果需要,我可以提供有关我的数据、网络等的其他信息。
解决方案
推荐阅读
- python - 在计数矢量化器中使用哪个轴?
- python - 按列中最后一次出现的值过滤 Pandas 数据集
- javascript - 每秒从数据库 javascript 中获取实时数据
- python - 如何在 linux 中与不同参数并行运行 python 脚本?
- shell - 根据运行时信息构造命令
- r - 如何将这个宽数据框转换成这个长数据框?
- c# - 如何从 C# 中的 powershell 类中捕获完整的调用文本
- python - zlib decompress() 只解码第一行
- javascript - 在 react-google-maps 组件上自动调整高度
- xamarin - Xamarin Scroll 在 WebView 中滞后