为什么我的keras模型获得了良好的准确性但预测结果不好?

时间:2017-05-28 07:04:27

标签: python numpy model keras prediction

所以,我正在尝试制作一个可以预测涂鸦的模型。我正在使用谷歌的快速绘制数据:https://console.cloud.google.com/storage/browser/quickdraw_dataset/full/numpy_bitmap这些图像呈现为28x28灰度位图numpy数组。我只选了10个班,拍了6万张照片进行训练/评估。我的测试准确率为91%。当我尝试使用测试数据中的数据进行预测时,它可以正常工作。但是当我在绘画中绘制并将其转换为28x28时,它并没有做出好的预测。我需要什么样的数据?图像需要什么样的预处理?

这是我从谷歌的npy文件

预处理数据的方式
def load_set(name,path,resultx,resulty,label):
    loaded_set = np.load(path+name+".npy")
    loaded_set = loaded_set.reshape(loaded_set.shape[0],1,28,28)
   # print(name,loaded_set.shape)
    loaded_set = loaded_set[0:6000,0:6000,0:6000,0:6000]
    resultx = np.append(resultx,loaded_set,axis=0)
    resulty = createLabelArray(label,loaded_set.shape[0],resulty)
    print("loaded "+name)
    return resultx,resulty

def createLabelArray(label,size,result):
    for i in range(0,size):
        result = np.append(result,[[label]],axis=0)
    return result

其中label是我想要的那个类别的标签。 我事后洗了他们一切。 这就是我试图处理新图像的方式(由我绘制):

print("[INFO] loading and preprocessing image...")
image = image_utils.load_img(os.path.join(path, name), grayscale=True,target_size=(28, 28))
image = image_utils.img_to_array(image)
print(image.shape)
image = np.expand_dims(image, axis=0)
print(image.shape)
image = image.astype('float32')
image /= 255
return image

请帮忙,我已经坚持了一段时间了。谢谢

1 个答案:

答案 0 :(得分:0)

似乎是过度拟合的典型案例。

请尝试10倍交叉验证以获得模型的准确性。 进一步使用keras中的正则化和丢失来防止过度拟合。

相关问题