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

时间:2017-08-07 00:10:10

标签: python keras reshape conv-neural-network

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

我遵循this教程,使用theano作为BackEnd和MNIST数据集训练CNN与Keras。现在我想传递给CNN我自己的jpg图像,但我不知道如何重塑它。你能帮我吗?我是超级新人。

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

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使用width = 28,height = 28和depth = 1。

2 个答案:

答案 0 :(得分:2)

尝试使用Numpy进行重塑。因为,您一直在使用2D-Convolutional模型:

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

答案 1 :(得分:1)

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

当您致电opencv阅读图片时,请使用以下代码。 img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)