我建立了一个神经网络,使用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(并解释为什么它不是这样),以便将其传递给我的神经网络吗?
谢谢!
答案 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