предсказывать мое собственное изображение в cnn, используя keras - PullRequest
0 голосов
/ 19 января 2019

как предсказать мое собственное изображение (в каталоге), используя cnn в keras после обучения на наборе данных MNIST?Я знаю, что могу использовать «model.predict (X_test [:])» для прогнозирования изображений тестового набора, но как мне прогнозировать свое собственное изображение?

from keras.models import Sequential
from keras.layers import Dense, Conv2D, Flatten
import matplotlib.pyplot as plt
from keras.datasets import mnist
from keras.utils import to_categorical
#download mnist data and split into train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()
#plot the first image in the dataset
plt.imshow(X_train[0])
X_train = X_train.reshape(60000,28,28,1)
X_test = X_test.reshape(10000,28,28,1)
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
y_train[0]
#create model
model = Sequential()
#add model layers
model.add(Conv2D(64, kernel_size=3, activation='relu', input_shape=(28,28,1)))
model.add(Conv2D(32, kernel_size=3, activation='relu'))
model.add(Flatten())
model.add(Dense(10, activation='softmax'))
#compile model using accuracy as a measure of model performance
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train,validation_data=(X_test, y_test), epochs=1)

1 Ответ

0 голосов
/ 19 января 2019

Сначала вы должны прочитать на вашем изображении cv2 и изменить его размер до (28,28).Наконец, добавьте размер партии (0-е измерение) и размер канала (последнее измерение) перед подачей его в модель keras.

import cv2
import numpy as np

img = cv2.imread("your_image.png",0)
img = cv2.resize(img, (28, 28))
img = np.reshape(img, [1, 28, 28, 1])
print(np.argmax(model.predict(img)))
...