枕头图像的numpy数组中的形状是否意外?

时间:2020-02-26 22:25:43

标签: python python-3.x tensorflow neural-network python-imaging-library

我建立了一个神经网络,使用MNIST数据集来检测手写数字。

由于训练的MNIST图像为28x28灰度,因此网络的输入形状为(28,28)。

我现在想用自己的笔迹测试我的神经网络。

我的图像不是28x28灰度图像,因此我试图将其转换,以便我的模型可以接受它们进行预测。

当前,我有以下内容:

img = Image.open('image.png').convert('LA')
newImg = img.resize((28,28), Image.ANTIALIAS)
toPredict = np.array(new_img)

但是这给了我一个(28, 28, 2)的numpy数组,我听不懂。

转换为灰度并调整大小后,我应该具有28x28形状的数组(28像素高乘以28像素宽)。

我不明白为什么形状不是那样。

任何人都可以帮助我将形状设为28x28(并解释为什么它不是这样),以便将其传递给我的神经网络吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您快到了。 img = Image.open('image.png').convert('LA')为28x28x2,因为它是带有alpha通道的灰度。 而是使用以下命令将其转换为灰度:

img = Image.open('image.png').convert('L')

您可以在此处查看有关这些模式的更多信息: https://pillow.readthedocs.io/en/latest/handbook/concepts.html#modes