Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的预测结果和准确率相比很差_Python_Deep Learning_Keras - Fatal编程技术网

Python 为什么我的预测结果和准确率相比很差

Python 为什么我的预测结果和准确率相比很差,python,deep-learning,keras,Python,Deep Learning,Keras,我使用Keras在python中编写了一个图像分类代码(两类,“好”和“坏”),训练数据的准确率约为99%,验证数据的准确率约为95%。(图像为60乘以30像素的灰度png文件) 现在,我想使用以下代码对验证目录中的所有600个图像进行预测 path='/home/admin/Desktop/dataset/validation/good' for file in os.listdir(path): im=cv2.imread(os.path.join(path,file)) i

我使用Keras在python中编写了一个图像分类代码(两类,“好”和“坏”),训练数据的准确率约为99%,验证数据的准确率约为95%。(图像为60乘以30像素的灰度png文件)

现在,我想使用以下代码对验证目录中的所有600个图像进行预测

path='/home/admin/Desktop/dataset/validation/good'
for file in os.listdir(path):
    im=cv2.imread(os.path.join(path,file))
    im=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
    im=np.reshape(im,[1, img_width,img_height,1])*(1. /255)
    result=model.predict_classes(im)
但是,“坏”目录中的300个图像的结果是9[1]和291[0],而“好”目录中的300个图像的结果是42[1]和258[0],这显然是错误的

我认为我的数据处理方式不同于ImageDataGeneratorflow\u from\u directory,这导致了错误,但我不确定

********更新********

当我使用以下代码时,结果是正确的

predict_data=ImageDataGenerator(rescale=1. / 255).flow_from_directory(
    '/home/admin/Desktop/dataset/validation/good',
    target_size=(img_width, img_height),
    batch_size= 300,
    class_mode=None,
    color_mode='grayscale')

result=model.predict_generator(
    predict_data,
    steps=1)

但是我仍然不知道错误在哪里。

这可能是BGR(OpenCV)与RGB通道顺序。我使用predict_generator进行预测,结果是正确的,因此我确信问题在于数据处理。灰度图像的3个通道通常应该具有相同的值,由于过度拟合,培训结果良好,验证结果不佳。我认为,如果问题是不同的处理,那么准确率将非常糟糕,而不是一个非常好的数字,比如95%。如果你增加辍学率,情况会好转吗?
predict_data=ImageDataGenerator(rescale=1. / 255).flow_from_directory(
    '/home/admin/Desktop/dataset/validation/good',
    target_size=(img_width, img_height),
    batch_size= 300,
    class_mode=None,
    color_mode='grayscale')

result=model.predict_generator(
    predict_data,
    steps=1)