Как использовать свое собственное нарисованное от руки изображение в TensorFlow Number Recognition - PullRequest
1 голос
/ 30 октября 2019

У меня есть некоторый базовый код Python для создания очень простой нейронной сети, которая классифицирует нарисованные от руки числа из набора данных MNIST.

Сеть работает, и я хотел бы сделать прогноз для рисованного изображенияэто не является частью набора данных MNIST.

Вот мой код:

import tensorflow as tf

mnist = tf.keras.datasets.mnist # 28x28 images of handwritten digits (0-9)

(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = tf.keras.utils.normalize(x_train, axis=1)
x_test = tf.keras.utils.normalize(x_test, axis=1)

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))

model.compile(optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy'])

model.fit(x_train, y_train, epochs=3)

val_loss, val_acc = model.evaluate(x_test, y_test)
print(val_loss, val_acc)

import matplotlib.pyplot as plt

Ниже я могу сделать прогнозы. Я хотел бы изменить код так, чтобы я мог прогнозировать на основе своего собственного нарисованного от руки изображения (помеченного "test_image.jpg"):

predictions = model.predict([x_test])

import numpy as np

print(np.argmax(predictions[0]))

Любые идеи будут очень полезны!

1 Ответ

1 голос
/ 30 октября 2019

Поскольку ваша модель обучена на черно-белых изображениях, у вас есть только один канал, и вам нужно преобразовать изображение в оттенки серого:

import numpy as np
import cv2

img = cv2.imread('test_image.jpg')
img = cv2.resize(img, (28,28))
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = np.reshape(img, [1,28,28])

predictions = model.predict(img)
print(np.argmax(predictions[0]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...