检查输入时出错:预期conv2d_21_input具有4个维,但数组的形状为(1、1、224、224、3)

时间:2019-04-01 14:14:55

标签: python keras neural-network classification cv2

我正在尝试对图像进行分类,但是出现错误。我有两类图像,其中有两种不同的个性。

import cv2
from keras.preprocessing import image
r = cv2.imread('C:\\...\\modi.jpg',1)
orig = r.copy()
r = cv2.resize(r, (224, 224))
r = r.astype("float") / 255.0
r = image.img_to_array(r)
ry = np.expand_dims(k, axis=1)
from keras.models import load_model

(notSanta, santa) = model.predict(r)[0]

ry的形状为(1, 1, 224, 224, 3)r的形状为(400, 650, 3)。 形状似乎是这里的错误。

1 个答案:

答案 0 :(得分:0)

很难澄清,因为您的代码不具体, 但我想是r甚至可能是np.expand_dims的形状有问题。

根据问题的名称,您的DNN输入层应该类似于(1,2,224,224,3),但是您已经传递给了模型(1、1,2,224,224,3)。因此,似乎有一个额外的维度,需要“展平”。

因此,您可以使用numpy.squeeze()进行尺寸缩减。

您的代码中的kry是什么? k甚至都没有声明。