Неожиданная форма в массиве numpy изображения подушки? - PullRequest
0 голосов
/ 27 февраля 2020

Я построил нейронную сеть для обнаружения рукописных цифр с использованием набора данных MNIST.

Сеть принимает входную форму (28,28), поскольку обучающие изображения MNIST имеют полутоновую шкалу 28x28.

Теперь я хочу протестировать свою нейронную сеть на своем собственном почерке.

Изображения, которые у меня есть, не являются изображениями в оттенках серого цвета 28x28, поэтому я пытаюсь преобразовать их, чтобы моя модель принимала их для прогнозирования.

В настоящее время у меня есть следующее:

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

Однако это дает мой numpy массив формы (28, 28, 2) Я не понимаю этого.

После преобразования для изменения оттенков серого у меня должен быть массив в форме 28x28 (высота 28 пикселей, умноженная на ширину 28 пикселей).

Я не понимаю, почему форма не такая.

Может кто-нибудь мне помочь получить форму 28x28 (и объяснить, почему это не так), чтобы я мог передать ее в свою нейронную сеть?

Спасибо!

1 Ответ

0 голосов
/ 27 февраля 2020

Ты почти там. img = Image.open('image.png').convert('LA') - 28x28x2, потому что это шкала серого с альфа-каналом. Вместо этого преобразуйте его в просто оттенки серого с помощью:

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

Более подробную информацию о режимах можно получить здесь: https://pillow.readthedocs.io/en/latest/handbook/concepts.html#modes

...