Python 用一幅图像给keras喂食(预测)

Python 用一幅图像给keras喂食(预测),python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我在Keras(二值图像分类,再训练异常模型)中训练了一个模型。现在如果我喂它 model.predict(np.random.rand(1, 300, 300, 3)) 我得到输出 array([[0.68225867, 0.3177413 ]], dtype=float32) 这正是我试图通过真实图像得到的。然而,当我像这样输入真实图像时: from scipy.misc import imread,imresize x=imread('processed_dataset/test/EM

我在Keras(二值图像分类,再训练异常模型)中训练了一个模型。现在如果我喂它

model.predict(np.random.rand(1, 300, 300, 3))
我得到输出

array([[0.68225867, 0.3177413 ]], dtype=float32)
这正是我试图通过真实图像得到的。然而,当我像这样输入真实图像时:

from scipy.misc import imread,imresize
x=imread('processed_dataset/test/EM/bull_212.jpg',mode='RGB')
x=imresize(x,(300,300))
x=np.invert(x)
x=x.reshape(-1,300,300,3)
model.predict(x)
我总是得到相同的输出:

array([[1., 0.]], dtype=float32)
模型输出[1,0],与输入图像无关。如果我以这种方式馈送图像,则情况相同:

img = image.load_img('processed_dataset/test/EM/bull_212.jpg', target_size=(img_width, img_height))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)


images = np.vstack([x])
model.predict(images, batch_size=1)
我的想法是:如果输入一个np.random“image”得到期望的结果,问题是如何输入真实的图像。
如何正确地做这件事,使它给我想要的结果

似乎您没有应用用于训练模型的标准化,如果您不这样做,那么输入将完全不同,这将使神经元饱和,产生不一致的输出。

您有一个过拟合模型,很可能是由高度倾斜引起的data@Inder但我给出了一个模型从未见过的图像,所以它应该是随机的。我的逻辑是错误的吗?它与它所训练的数据拟合过度,因此无论你给它什么,它都会预测相同的结果。如果你应用与模型训练相同的输入规范化,那么问题就在于此。非常感谢。我没有对输入图像进行重缩放。如果你能把它作为一个答案,我会把它标记为接受。