keras 重塑输入图像以与 CNN 一起使用

keras reshape input image to work with CNN

还有其他 post 有类似问题,但 none 的答案对我有帮助。我是这个 CNN 世界的新手。

我按照 this 教程使用 Keras 使用 theano 作为后端和 MNIST 数据集训练 CNN。现在我想将我自己的 jpg 图像传递给 CNN,但我不知道如何重塑它。你能帮我吗?我是新手。

到目前为止,我试过这个来重塑

image = np.expand_dims(image, axis=0) image = preprocess_input(image)

但是预测的时候出现如下错误:

ValueError: Error when checking : expected conv2d_1_input to have shape (None, 1, 28, 28) but got array with shape (1, 3, 28, 28)

如您所见,我的 CNN 使用宽度 = 28、高度 = 28 和深度 =1。

尝试使用 Numpy 进行整形。因为,您一直在使用 2D 卷积模型:

 image = np.reshape(image, (28, 1, 28, 1))

错误消息显示网络期望图像形状为 1*28*28,但您的输入是 3*28*28。我猜你输入的图像是彩色图像,3 个通道 (RGB),而网络需要一个灰色图像,一个通道。

调用opencv读取图片时,请使用以下代码。 img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)