Python Keras Tensorflow val_acc始终为1或从0跳到1

Python Keras Tensorflow val_acc始终为1或从0跳到1,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,在某些网络中,我注意到val_acc直接从1.000开始 例: 显然,当测试模型时,会出现可怕的结果,准确度是完全错误的 在我看来,这似乎是过度拟合,但即使降低LR,这似乎也不会造成任何影响。 添加辍学导致val_acc为0.0000,并且从那里它不会移动 我期望测试集和验证测试具有类似的准确性,但这两个值似乎根本不相关 编辑以添加信息: 输入数据是一批黑白图像,x/y坐标表示眼睛位置。每个像素值都在0-1范围内进行了标准化,我确信眼睛坐标是正确的。首先要确认的是数据是否正确加载并符合预期。我在

在某些网络中,我注意到val_acc直接从1.000开始 例:

显然,当测试模型时,会出现可怕的结果,准确度是完全错误的

在我看来,这似乎是过度拟合,但即使降低LR,这似乎也不会造成任何影响。 添加辍学导致val_acc为0.0000,并且从那里它不会移动

我期望测试集和验证测试具有类似的准确性,但这两个值似乎根本不相关

编辑以添加信息:
输入数据是一批黑白图像,x/y坐标表示眼睛位置。每个像素值都在0-1范围内进行了标准化,我确信眼睛坐标是正确的。

首先要确认的是数据是否正确加载并符合预期。我在检查同事训练CNN执行图像分割的代码时遇到了这个问题。事实证明,输入的地面真实值都是0(在训练数据中),网络也只输出0,并获得完美的精度


如果数据似乎是正确的,那么使用不同的精度度量也有助于解决此问题。您可以参考文档,查看哪些指标可用,并且与您试图解决的问题非常匹配。

感谢您的帮助。你能再详细一点吗?输入数据是一批黑白图像,x/y坐标表示眼睛位置。每个像素值在0-1范围内都是标准化的,我确信眼睛坐标是正确的。那么,你是不是把一组图像作为X和坐标向量作为Y?如果你把X看成是“输入”,而Y是“预期输出”,答案是肯定的。每个图像由一个2D向量表示,该向量包含0-1范围内的归一化值,每个像素值,每个输出由一个向量表示,该向量包含4个值(每只眼睛x/y)。您使用了多少图像,以及您的训练的损失函数和精度指标是什么?我使用了大约1500个图像,15%用于测试,作为损失函数,我使用keras.loss.mean_squared_误差和“精度”作为度量
...
3/1667 [==============================] - 8s - loss: 0.0877 - acc: 0.0432 
- val_loss: 0.0814 - val_acc: 1.0000
Epoch 2/50