Python 为什么我的神经网络将所有的东西都识别为语义分割任务的人物或背景?

Python 为什么我的神经网络将所有的东西都识别为语义分割任务的人物或背景?,python,matplotlib,machine-learning,neural-network,keras,Python,Matplotlib,Machine Learning,Neural Network,Keras,首先,我是这些话题的新手。我的神经网络在训练集和验证集上都将所有事物分类为人或背景。培训集是2011年的 这是一种局部极小值(或鞍点?预测一切作为背景(最常见的标签) 原因是什么,你的想法是什么? 还有没有合适的方法来可视化语义切分 我想训练是有问题的。如果存在过度拟合,损失总是会减少,为什么传输数据的结果是相同的 关于标签图像的可视化问题。你不需要你自己的彩色地图与imshow。您可以使用cmap关键字参数imshow,并选择定性颜色贴图 更多阅读: 例如: plt.ims

首先,我是这些话题的新手。我的神经网络在训练集和验证集上都将所有事物分类为背景。培训集是2011年的

这是一种局部极小值(或鞍点?预测一切作为背景(最常见的标签)

原因是什么,你的想法是什么? 还有没有合适的方法来可视化语义切分

我想训练是有问题的。如果存在过度拟合,损失总是会减少,为什么传输数据的结果是相同的


关于标签图像的可视化问题。你不需要你自己的彩色地图与imshow。您可以使用cmap关键字参数imshow,并选择定性颜色贴图

更多阅读:

例如:

plt.imshow(img2, cmap="Set1", interpolation="nearest")

关于把一切都归为背景的问题

我假设所提供的图像从训练的早期到后期(可能来自训练集)

一些建议:

  • 尝试最初使用加权成本函数进行训练,其权重与数据集中标签的比例成反比。这将使其通过任何最小值/鞍座,这是由于先前的功能

  • 尝试使用正则化参数


尝试在将图像传送到网络之前不预处理图像。精度有所提高,但结果相同。我的意思是,我刚刚删除了关于培训的“x=preprocess_input(x)”:您是否直接使用了来自keras fcn存储库的培训代码?因为存储库的所有者自己说它需要调整。在调整了一些东西之后,我取得了一些成功。另外,请您报告您的培训历史记录(培训集损失和准确度,测试集损失和准确度与历元数对比)。
plt.imshow(img2, cmap="Set1", interpolation="nearest")