所以,我正在尝试制作一个可以预测涂鸦的模型。我正在使用谷歌的快速绘制数据: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
请帮忙,我已经坚持了一段时间了。谢谢
答案 0 :(得分:0)
似乎是过度拟合的典型案例。
请尝试10倍交叉验证以获得模型的准确性。 进一步使用keras中的正则化和丢失来防止过度拟合。